寫在前面
前文回顧:【LeetCode】貪心算法--買賣股票的最佳時機 II(122)
前兩天做了一個随機生成密碼的課後練習題,題目挺簡單,但是這個題目卻有兩個比較重要的知識點Random和String子產品,今天就跟大家聊一聊這兩個知識點。話不多說,我們開始吧。
具體介紹
題目描述:
随機密碼生成。編寫程式,在26個字母大小寫和9個數字組成的清單中随機生成10個八位密碼。
這個題并不難隻要建立一個包含26個字母大小寫和9個數字的清單然後用Random随機生成就可以了。下面是自己的代碼:
1#随機密碼生成
2import random
3import string
4a=0
5while a<11:
6 #從a-zA-Z0-9生成指定數量的随機字元
7 str = ''.join(random.sample(string.ascii_letters + string.digits,8))
8 print (str)
9 a+=1
複制
代碼量可以說是非常小,那麼現在我給大家講解一下Random和String子產品,兩者的組合在現實生活中有很多應用,比如生成激活碼。
Random庫
随機數在計算機應用中十分常見,python内置的random庫主要用于産生各種分布的僞随機數列。random庫采用梅森旋轉算法生成僞随機數序列,可用于除随機性要求更高的加解密算法外的大多數工程應用,之前的Python人工造雪2.0(動态版)就是應用random随機數實作動态的雪花。
random庫中主要有以下常用的函數
1.随機整數:
1random.randint(1,50)
複制
2.随機選取0到100間的偶數:
1random.randrange(0, 101, 2)
複制
3.随機浮點數:
1random.random()
2random.uniform(1,10)
複制
4.随機字元:
1random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*()')
複制
5.多個字元中生成指定數量的随機字元:
1random.sample('zyxwvutsrqponmlkjihgfedcba',5)
複制
6.随機選取字元串:
1random.choice(['剪刀', '石頭', '布'])
複制
7.打亂排序
1items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
2random.shuffle(items)
複制
String子產品
任何語言都離不開字元,那就會涉及對字元的操作,尤其是腳本語言更是頻繁,不管是生産環境還是面試考驗都要面對字元串的操作。python的字元串操作通過2部分的方法函數基本上就可以解決所有的字元串操作需求:
1.python的字元串屬性函數
這主要介紹幾個常用的方法
str.capitalize() :把字元串的首字母大寫
str.center(width):将原字元串用空格填充成一個長度為width的字元串
str.count(s) :傳回字元串s在str中出現的次數
str.lower():全部字元小寫
str.upper():全部字元大寫
str.format():傳回字元串的一種排版格式
2.python的string子產品
Python3中String子產品ascii_letters和digits方法,其中ascii_letters是生成所有字母,從a-z和A-Z,digits是生成所有數字0-9。
string.punctuation 所有标點字元
string.whitespace 空白字元\t\n\x0b
string.printable 可列印的字元字元串 包含數字字母标點符号
寫在最後
今天這篇文章是由一道練習題延伸出來的知識點,簡單的談了談常用的方法,希望能給大家帶來一點幫助。