創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
在永平等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷,外貿(mào)網(wǎng)站制作,永平網(wǎng)站建設(shè)費(fèi)用合理。這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)怎么使用Python random模塊,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
random 模塊主要包含生成偽隨機(jī)數(shù)的各種功能變量和函數(shù)。
在 Python 的交互式解釋器中先導(dǎo)入 random 模塊,然后輸入 random.__all__ 命令(__all__ 變量代表了該模塊開放的公開接口),即可看到該模塊所包含的全部屬性和函數(shù):
>>> random.__all__ ['Random', 'seed', 'random', 'uniform', 'randint', 'choice', 'sample', 'randrange', 'shuffle', 'normalvariate', 'lognormvariate', 'expovariate', 'vonmisesvariate', 'gammavariate', 'triangular', 'gauss', 'betavariate', 'paretovariate', 'weibullvariate', 'getstate', 'setstate', 'getrandbits', 'choices', 'SystemRandom']
在 random 模塊下提供了如下常用函數(shù):
random.seed(a=None, version=2):指定種子來初始化偽隨機(jī)數(shù)生成器。
random.randrange(start, stop[, stop]):返回從 start 開始到 stop 結(jié)束、步長為 step 的隨機(jī)數(shù)。其實(shí)就相當(dāng)于 choice(range(start, stop, step)) 的效果,只不過實(shí)際底層并不生成區(qū)間對象。
random.randint(a, b):生成一個(gè)范圍為 a≤N≤b 的隨機(jī)數(shù)。其等同于 randrange(a, b+1) 的效果。
random.choice(seq):從 seq 中隨機(jī)抽取一個(gè)元素,如果 seq 為空,則引發(fā) IndexError 異常。
random.choices(seq, weights=None, cum_weights=None, k=1):從 seq 序列中抽取 k 個(gè)元素,還可通過 weights 指定各元素被抽取的權(quán)重(代表被抽取的可能性高低)。
random.shuffle(x[, random]):對 x 序列執(zhí)行洗牌“隨機(jī)排列”操作。
random.sample(population, k):從 population 序列中隨機(jī)抽取 k 個(gè)獨(dú)立的元素。
random.random():生成一個(gè)從0.0(包含)到 1.0(不包含)之間的偽隨機(jī)浮點(diǎn)數(shù)。
random.uniform(a, b):生成一個(gè)范圍為 a≤N≤b 的隨機(jī)數(shù)。
random.expovariate(lambd):生成呈指數(shù)分布的隨機(jī)數(shù)。其中 lambd 參數(shù)(其實(shí)應(yīng)該是 lambda,只是 lambda 是 Python 關(guān)鍵字,所以簡寫成 lambd)為 1 除以期望平均值。如果 lambd 是正值,則返回的隨機(jī)數(shù)是從 0 到正無窮大;如果 lambd 為負(fù)值,則返回的隨機(jī)數(shù)是從負(fù)無窮大到 0。
下面程序示范了 random 模塊中常見函數(shù)的功能和用法:
import random #生成范圍為0.0≤x<1.0 的偽隨機(jī)浮點(diǎn)數(shù) print (random.random()) #生成范圍為2.5≤x<10.0 的偽隨機(jī)浮點(diǎn)數(shù) print (random.uniform(2.5, 10.0)) #生成呈指數(shù)分布的偽隨機(jī)浮點(diǎn)數(shù) print (random.expovariate(1/5)) #生成從0 到9 的偽隨機(jī)整數(shù) print(random.randrange(10)) #生成從0 到100 的隨機(jī)偶數(shù) print (random.randrange(0, 101 , 2)) #隨機(jī)抽取一個(gè)元素 print (random.choice (['Python','Swift','Kotlin'])) book_list = ['Python','Swift','Kotlin'] #對列表元素進(jìn)行隨機(jī)排列 random.shuffle (book_list) print (book_list) #隨機(jī)抽取4 個(gè)獨(dú)立的元素 print (random.sample([10, 20 , 30 , 40 , 50], k=4))
運(yùn)行上面程序,可以看到如下輸出結(jié)果:
0.7097266660597923 6.4845555071809535 9.707899380000603 2 70 Python ['Swift', 'Python', 'Kotlin'] [20, 10, 30, 50]
實(shí)際上,使用 random 模塊中的隨機(jī)函數(shù)可以做很多很有趣的事情。比如下面程序:
import random import collections #指定隨機(jī)抽取6 個(gè)元素,各元素被抽取的權(quán)重(概率)不同 print(random.choices(['Python','Swift','Kotlin'], [5, 5, 1], k=6)) #下面模擬從52 張撲克牌中抽取20 張 #在被拍到的20 張牌中,牌面為10(包括J、Q、K的的牌占多大比例 #生成一個(gè)16個(gè)tens(代表10)和36 個(gè)low_cards(代表其他牌)的集合 deck= collections.Counter(tens=16, low_cards=36) #從52 張牌中隨機(jī)抽取20 張 seen= random.sample(list(deck.elements()), k=20) #統(tǒng)計(jì)tens 元素有多少個(gè),再除以20 print(seen.count('tens')/20)
運(yùn)行上面程序,可以看到如下輸出結(jié)果:
['Swift', 'Swift', 'Swift', 'Swift', 'Python', 'Swift'] 0.45
上述就是小編為大家分享的怎么使用Python random模塊了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。