Python之random庫(kù)的常用函數(shù)有哪些
前言
在進(jìn)行接口測(cè)試時(shí),有些接口字段在不需要測(cè)試的時(shí)候往往是被寫(xiě)死的,但是你不能保證它就不會(huì)出現(xiàn)問(wèn)題,所以在平時(shí)測(cè)試的時(shí)候就需要覆蓋各種情況,這時(shí)候就可以為此專門(mén)寫(xiě)一個(gè)函數(shù)或者類(lèi)來(lái)實(shí)現(xiàn)字段動(dòng)態(tài)值了。由于我們組的自動(dòng)化腳本里面的金額字段是固定的,現(xiàn)在需要改成動(dòng)態(tài)值,我用的是python的random庫(kù)寫(xiě)的,現(xiàn)在來(lái)詳細(xì)記錄一下。
一 random庫(kù)介紹
在python中,用于生成隨機(jī)數(shù)的是random庫(kù)。但random庫(kù)生成的隨機(jī)數(shù)是一種采用梅森旋轉(zhuǎn)算法生成的偽隨機(jī)數(shù),不是真正的隨機(jī)數(shù),因?yàn)橛?jì)算機(jī)是不能產(chǎn)生真正的隨機(jī)數(shù)的。
random庫(kù)是python的標(biāo)準(zhǔn)庫(kù),因此只要安裝了python環(huán)境,基本就能使用random庫(kù),使用方法如下
import random
二 基本隨機(jī)函數(shù)
random庫(kù)中的隨機(jī)數(shù)由兩個(gè)基本隨機(jī)函數(shù)產(chǎn)生,一個(gè)是seed()函數(shù),一個(gè)是random()函數(shù),如下
1. seed()
seed(a=None): 隨機(jī)數(shù)種子函數(shù),默認(rèn)參數(shù)a等于當(dāng)前系統(tǒng)時(shí)間。如果參數(shù)a值固定,則隨之產(chǎn)生的隨機(jī)數(shù)也會(huì)是同一個(gè)值。如下
import random import time random.seed(a=1) ran_num1 = random.random() ran_num3 = random.randint(1, 6) print("我是第一次隨機(jī)結(jié)果:") print(ran_num1) print(ran_num3) time.sleep(3) print("我是第二次隨機(jī)結(jié)果:") print(ran_num1) print(ran_num3)
從結(jié)果可以看出,當(dāng)參數(shù)a的值確定時(shí),產(chǎn)生的就不是隨機(jī)數(shù)了。
2. random()
random(): 生成一個(gè)[0.0, 1.0)之間的隨機(jī)小數(shù)
a = 0 while a < 10: num = random.random() a += 1 print(num)
三 擴(kuò)展隨機(jī)函數(shù)
由于基本隨機(jī)函數(shù)不夠用,所以又有了以下的擴(kuò)展隨機(jī)函數(shù),如下。
1. randint()
randint(a, b): 生成一個(gè)[a, b]之間的隨機(jī)整數(shù)
#randint a = 0 while a < 5: num = random.randint(1, 5) a += 1 print(num)
2. uniform()
uniform(a, b): 生成一個(gè)[a, b]之間的隨機(jī)小數(shù)
#uniform a = 0 while a < 5: num = random.uniform(1, 7) a += 1 print(num)
3. randrange()
randrange(m,n[,k]): 生成一個(gè)[m,n)之間以k(默認(rèn)為1)為步長(zhǎng)的隨機(jī)整數(shù)
#randrange a = 0 while a < 5: num = random.randrange(1, 5) a += 1 print(num)
4. choice()
choice(seq): 從序列中隨機(jī)選擇一個(gè)數(shù)
#choice a = 0 while a < 5: num = random.choice('abcd') a += 1 print(num)
5. shuffle()
shuffle(seq): 將列表元素順序打亂,返回打亂后的列表
#shuffle l = [1, 2, 3, 4] a = 0 while a < 5: random.shuffle(l) a += 1 print(l)
6. sample()
sample(seq, n): 從指定的序列seq中,隨機(jī)返回n個(gè)元素,以列表形式返回
#sample s = 'abcdfg' a = 0 while a < 5: num = random.sample(s, 1) a += 1 print(num)
四 實(shí)例(動(dòng)態(tài)金額值)
要求:返回一個(gè)動(dòng)態(tài)金額值,金額范圍:
1.0~1的一位小數(shù),兩位小數(shù);
2.不超過(guò)100的整數(shù);
3.1~100的一位小數(shù),兩位小數(shù);(測(cè)試金額字段,會(huì)不會(huì)自動(dòng)補(bǔ)全兩位小數(shù))
實(shí)現(xiàn);
#測(cè)試金額字段,會(huì)不會(huì)自動(dòng)補(bǔ)全兩位小數(shù) #實(shí)現(xiàn)金額字段動(dòng)態(tài)值 import random def get_random_amount(): ''' 實(shí)現(xiàn)金額字段動(dòng)態(tài)值 :return: random_amount ''' #小于1的一位小數(shù),兩位小數(shù)值 amount1 = round(random.random(), 1) amount2 = round(random.random(), 2) #整數(shù) amount3 = random.randint(1, 100) #1~100的一位小數(shù),兩位小數(shù)值 amount4 = round(random.uniform(1, 100), 1) amount5 = round(random.uniform(1, 100), 2) #從5個(gè)金額值中隨機(jī)返回一個(gè) randomList = [amount1, amount2, amount3, amount4, amount5] random_amount = random.sample(randomList, 1)[0] print(randomList) return random_amount #函數(shù)調(diào)用 random_amount = get_random_amount() print(random_amount)
測(cè)試結(jié)果如下
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
PyTorch實(shí)現(xiàn)聯(lián)邦學(xué)習(xí)的基本算法FedAvg
這篇文章主要為大家介紹了PyTorch實(shí)現(xiàn)聯(lián)邦學(xué)習(xí)的基本算法FedAvg,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Pandas對(duì)DataFrame單列/多列進(jìn)行運(yùn)算(map, apply, transform, agg)
這篇文章主要介紹了Pandas對(duì)DataFrame單列/多列進(jìn)行運(yùn)算(map, apply, transform, agg),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06python pandas中對(duì)Series數(shù)據(jù)進(jìn)行軸向連接的實(shí)例
今天小編就為大家分享一篇python pandas中對(duì)Series數(shù)據(jù)進(jìn)行軸向連接的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Python動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)虛擬機(jī)部署的算法思想
這篇文章主要介紹了Python動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)虛擬機(jī)部署的算法思想,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07Python處理字節(jié)串:struct.pack和struct.unpack使用
這篇文章主要介紹了Python處理字節(jié)串:struct.pack和struct.unpack使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01python虛擬環(huán)境virtualenv的安裝與使用
virtualenv用于創(chuàng)建獨(dú)立的Python環(huán)境,多個(gè)Python相互獨(dú)立,互不影響,它能夠:1. 在沒(méi)有權(quán)限的情況下安裝新套件 2. 不同應(yīng)用可以使用不同的套件版本 3. 套件升級(jí)不影響其他應(yīng)用2017-09-09