This module implements pseudo-random number generators for various distributions.
對於整數,有一個范圍的均勻選擇;
對於序列,存在隨機元素的均勻選擇,產生就地列表的隨機置換的函數,以及用於無替換的隨機采樣的函數
Almost all module functions depend on the basic function random(),其在半開放范圍[0.0,1.0)中均勻地生成隨機浮點數。
一、整數的函數
random.randrange(stop)
random.randrange(start, stop[, step])
從random.randrange(start, stop[, step])返回一個從start到stop范圍內的隨機整數(start,stop,step都是整數,不包含stop)。
random.randint(a, b)
返回一個隨機整數n,a <= n <= b
二、序列函數
random.choice(seq):從一個非空序列seq中返回隨機一個元素,如果seq為空,則引發IndexError。
random.shuffle(x,[random]):原地攪亂序列x,打亂一個序列。
random.sample(population,k):返回從群體序列或集合中選擇的唯一元素的k長度列表。用於隨機抽樣,無序更換。隨機選擇多個返回,返回的個數為函數的第二個參數
random.random() :返回[0.0,1.0]中隨機浮點數。
random.uniform(a,b) : 根據等式a +中的浮點舍入,端點值。b (ba) * random()
>>> import random #隨機小數 >>> random.random() # 大於0且小於1之間的小數 0.7664338663654585 >>> random.uniform(1,3) #大於1小於3的小數 1.6270147180533838 #隨機整數 >>> random.randint(1,5) # 大於等於1且小於等於5之間的整數 >>> random.randrange(1,10,2) # 大於等於1且小於10之間的奇數 #隨機選擇一個返回 >>> random.choice([1,'23',[4,5]]) # #1或者23或者[4,5] #隨機選擇多個返回,返回的個數為函數的第二個參數 >>> random.sample([1,'23',[4,5]],2) # #列表元素任意2個組合 [[4, 5], '23'] #打亂列表順序 >>> item=[1,3,5,7,9] >>> random.shuffle(item) # 打亂次序 >>> item [5, 1, 3, 7, 9] >>> random.shuffle(item) >>> item [5, 9, 7, 1, 3]
練習:生成隨機驗證碼
import random def v_code(): code = '' for i in range(5): num=random.randint(0,9) alf=chr(random.randint(65,90)) add=random.choice([num,alf]) code="".join([code,str(add)]) return code print(v_code())
