W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Python random 模塊主要用于生成隨機(jī)數(shù)。
random 模塊實(shí)現(xiàn)了各種分布的偽隨機(jī)數(shù)生成器。
要使用 random 函數(shù)必須先導(dǎo)入:
import random
查看 random 模塊中的內(nèi)容:
>>> import random
>>> dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_floor', '_inst', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
接下來我們使用 random() 方法返回一個(gè)隨機(jī)數(shù),它在 [0,1) 范圍內(nèi),包含 0 但不包含 1。
# 導(dǎo)入 random 包
import random
# 生成隨機(jī)數(shù)
print(random.random())
以上實(shí)例輸出結(jié)果為:
0.4784904215869241
seed() 方法改變隨機(jī)數(shù)生成器的種子,可以在調(diào)用其他隨機(jī)模塊函數(shù)之前調(diào)用此函數(shù)。
#!/usr/bin/python3
import random
random.seed()
print ("使用默認(rèn)種子生成隨機(jī)數(shù):", random.random())
print ("使用默認(rèn)種子生成隨機(jī)數(shù):", random.random())
random.seed(10)
print ("使用整數(shù) 10 種子生成隨機(jī)數(shù):", random.random())
random.seed(10)
print ("使用整數(shù) 10 種子生成隨機(jī)數(shù):", random.random())
random.seed("hello",2)
print ("使用字符串種子生成隨機(jī)數(shù):", random.random())
以上實(shí)例運(yùn)行后輸出結(jié)果為:
使用默認(rèn)種子生成隨機(jī)數(shù): 0.7908102856355441 使用默認(rèn)種子生成隨機(jī)數(shù): 0.81038961519195 使用整數(shù) 10 種子生成隨機(jī)數(shù): 0.5714025946899135 使用整數(shù) 10 種子生成隨機(jī)數(shù): 0.5714025946899135 使用字符串種子生成隨機(jī)數(shù): 0.3537754404730722
random 模塊方法如下:
方法 | 描述 |
---|---|
seed() | 初始化隨機(jī)數(shù)生成器 |
getstate() | 返回捕獲生成器當(dāng)前內(nèi)部狀態(tài)的對(duì)象。 |
setstate() | state 應(yīng)該是從之前調(diào)用 getstate() 獲得的,并且 setstate() 將生成器的內(nèi)部狀態(tài)恢復(fù)到 getstate() 被調(diào)用時(shí)的狀態(tài)。 |
getrandbits(k) | 返回具有 k 個(gè)隨機(jī)比特位的非負(fù) Python 整數(shù)。 此方法隨 MersenneTwister 生成器一起提供,其他一些生成器也可能將其作為 API 的可選部分提供。 在可能的情況下,getrandbits() 會(huì)啟用 randrange() 來處理任意大的區(qū)間。 |
randrange() | 從 range(start, stop, step) 返回一個(gè)隨機(jī)選擇的元素。 |
randint(a, b) | 返回隨機(jī)整數(shù) N 滿足 a <= N <= b。 |
choice(seq) | 從非空序列 seq 返回一個(gè)隨機(jī)元素。 如果 seq 為空,則引發(fā) IndexError。 |
choices(population, weights=None, *, cum_weights=None, k=1) | 從 population 中選擇替換,返回大小為 k 的元素列表。 如果 population 為空,則引發(fā) IndexError。 |
shuffle(x[, random]) | 將序列 x 隨機(jī)打亂位置。 |
sample(population, k, *, counts=None) | 返回從總體序列或集合中選擇的唯一元素的 k 長度列表。 用于無重復(fù)的隨機(jī)抽樣。 |
random() | 返回 [0.0, 1.0) 范圍內(nèi)的下一個(gè)隨機(jī)浮點(diǎn)數(shù)。 |
uniform() | 返回一個(gè)隨機(jī)浮點(diǎn)數(shù) N ,當(dāng) a <= b 時(shí) a <= N <= b ,當(dāng) b < a 時(shí) b <= N <= a 。 |
triangular(low, high, mode) | 返回一個(gè)隨機(jī)浮點(diǎn)數(shù) N ,使得 low <= N <= high 并在這些邊界之間使用指定的 mode 。 low 和 high 邊界默認(rèn)為零和一。 mode 參數(shù)默認(rèn)為邊界之間的中點(diǎn),給出對(duì)稱分布。 |
betavariate(alpha, beta) | Beta 分布。 參數(shù)的條件是 alpha > 0 和 beta > 0。 返回值的范圍介于 0 和 1 之間。 |
expovariate(lambd) | 指數(shù)分布。 lambd 是 1.0 除以所需的平均值,它應(yīng)該是非零的。 |
gammavariate() | Gamma 分布( 不是伽馬函數(shù)) 參數(shù)的條件是 alpha > 0 和 beta > 0。 |
gauss(mu, sigma) | 正態(tài)分布,也稱高斯分布。 mu 為平均值,而 sigma 為標(biāo)準(zhǔn)差。 此函數(shù)要稍快于下面所定義的 normalvariate() 函數(shù)。 |
lognormvariate(mu, sigma) | 對(duì)數(shù)正態(tài)分布。 如果你采用這個(gè)分布的自然對(duì)數(shù),你將得到一個(gè)正態(tài)分布,平均值為 mu 和標(biāo)準(zhǔn)差為 sigma 。 mu 可以是任何值,sigma 必須大于零。 |
normalvariate(mu, sigma) | 正態(tài)分布。 mu 是平均值,sigma 是標(biāo)準(zhǔn)差。 |
vonmisesvariate(mu, kappa) | 馮·米塞斯分布。 mu 是平均角度,以弧度表示,介于0和 2*pi 之間,kappa 是濃度參數(shù),必須大于或等于零。 如果 kappa 等于零,則該分布在 0 到 2*pi 的范圍內(nèi)減小到均勻的隨機(jī)角度。 |
paretovariate(alpha) | 帕累托分布。 alpha 是形狀參數(shù)。 |
weibullvariate(alpha, beta) | 威布爾分布。 alpha 是比例參數(shù),beta 是形狀參數(shù)。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: