生成隨機數:python
# salt = ''.join(random.choices(string.ascii_letters + string.digits, k=3)) salt = ''.join(random.sample(string.ascii_letters + string.digits, 3)) print(salt)
python標準庫中的random
函數,能夠生成隨機浮點數、整數、字符串,甚至幫助你隨機選擇列表序列中的一個元素,打亂一組數據。git
random.random() 用於生成一個隨機浮點數dom
>>> import random >>> random.random() 0.025952242994744412
random.uniform(a,b) 用於生成一個指定範圍的隨機浮點數。若a=b,則生成的浮點數是a函數
>>> random.uniform(2,5) 2.3194041077057443 >>> random.uniform(2,2) 2.0
random.randint(a,b) 用於生成一個指定範圍內的整數,生成的隨機整數a<=n<=bcode
>>> random.randint(2,3) 2 >>> random.randint(2,3) 3 >>> random.randint(2,2) 2
random.randrange([start],stop[,step]) 從指定範圍,按指定基數遞增的集合中獲取一個隨機數,基數缺省值爲1,不包含stop。orm
random.randrange(10) #輸出0~10之間的任意數 random.randrange(10,100) #輸出爲10到100間的任意數 random.randrange(10,100,4) #輸出爲10到100內以4遞增的序列[10,14,18,22...] random.choice(range(10,100,4)) #輸出在結果上與上一條等效
random.shuffle(x[,random]) 用於將一個列表中的元素打亂ci
>>> list=[1,2,3,4,5] >>> random.shuffle(list) >>> list [4, 1, 2, 5, 3] >>> random.shuffle(list) >>> list [2, 4, 3, 1, 5]
random.choice(sequence) 從序列中獲取一個隨機元素,包括list、tuple、字符串等文檔
>>> random.choice(range(10)) 7 >>> random.choice("hello") 'e' >>> random.choice([1,2,3]) 3 >>> random.choice((1,2,3)) 1
random.choices(sequence,k=n) 從指定序列中隨機獲取n個元素做爲一個片斷返回。該函數還能夠設置各個元素的權重,詳見官方文檔。python3纔有的函數。字符串
>>> import random >>> random.choices('12345678',k=3) ['6', '3', '7']
random.sample(sequence,k) 從指定序列中隨機獲取k個元素做爲一個片斷返回,sample函數不會修改原有序列string
>>> a='1234567890' >>> random.sample(a,3) ['4', '1', '5'] >>> a '1234567890' # a不變 >>> random.sample([1,2,3,4,5,6,7,8],3) [1, 7, 5] >>> random.sample((1,2,3,4,5,6,7,8),3) [6, 2, 7]