如果要從序列中隨機挑選元素,我們可以使用random模塊的random.choice()方法:

如果想要取出N個元素,將選出的元素一處以做進一步的考察,可以使用random.sample()方法:

如果我們只是想要打亂序列的順序(洗牌),可以使用random.shuffle():

要產(chǎn)生隨機數(shù),可以使用random.randint()方法:

如果要產(chǎn)生0-1之間均勻分布的浮點數(shù)值,可以使用random.random()方法:

如果要得到N各隨機比特位所表示的整數(shù),可以使用random.getrandbits()方法:

請注意:
random模塊使用 馬特賽特旋轉(zhuǎn)演算法(Mersenne Twister,也稱作梅森旋轉(zhuǎn)算法)來計算隨機數(shù),這是一個確定性算法,但是可以通多random.seed()函數(shù)來修改出事的種子值
random.seed()#基于系統(tǒng)時間或者是os.urandom()函數(shù)random.seed(6666)#基于給定整數(shù)random.seed(b'bytes') #基于給定的字節(jié)數(shù)據(jù)
random模塊除了隨機數(shù)的應(yīng)用之外還可以用來計算均勻分布、高斯分布和其他概率分布
random.uniform#計算均勻分布random.gauss()#計算高斯分布(正態(tài)分布)
注意:請不要將random模塊用在和加密相關(guān)的程序中,如果有這樣的應(yīng)用需求,請考慮使用ssl模塊中的函數(shù)來進行替代,例如:
ssl.RAND_bytes()#用來生成加密安全的隨機字節(jié)序列

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點
疑難解答
圖片精選