1.函數(shù)名及其來(lái)源
random() 函數(shù)命名來(lái)源于英文單詞random(隨機(jī))饭尝。
randint是random + integer拼接簡(jiǎn)寫(xiě)而成,代表隨機(jī)一個(gè)整數(shù)
Python標(biāo)準(zhǔn)庫(kù)中的random函數(shù)步脓,可以生成隨機(jī)浮點(diǎn)數(shù)、整數(shù)浩螺、字符串靴患,甚至幫助你隨機(jī)選擇列表序列中的一個(gè)元素,打亂一組數(shù)據(jù)等要出。
random.randint() 函數(shù)的例子:
>>> import random
>>> import random
>>> print(random.randint(10,20))
19
>>> print(random.randint(10,20))
20
>>> print(random.randint(10,20))
11
>>> print(random.randint(10,20))
19
2.函數(shù)定義源碼及其用法拆解
random.randint(a,b)
用于生成一個(gè)指定范圍內(nèi)的整數(shù)鸳君。其中參數(shù)a是下限,參數(shù)b是上限患蹂,生成的隨機(jī)數(shù)n:a<=n<=b
a必須小于或等于b或颊,否則報(bào)錯(cuò)。
其他random的方法:
- random.random() 方法用于生成一個(gè)0到1的隨機(jī)浮點(diǎn)數(shù):0<=n<1.0
>>> import random
>>> print(random.random())
0.809221478124
- random.uniform(a,b):用于生成一個(gè)指定范圍內(nèi)的隨機(jī)浮點(diǎn)數(shù)况脆,兩參數(shù)中饭宾,其中一個(gè)是上限批糟,一個(gè)是下限格了。如果a>b,則生成的隨機(jī)數(shù)n徽鼎,即b<=n<=a盛末;如果a>b,則a<=n<=b否淤。
>>> import random
>>> print(random.uniform(10,20))
13.2960134544
>>> print(random.uniform(20,10))
15.9038751838
- random.randrange(a,b[,step]):從指定范圍內(nèi)悄但,按指定基數(shù)遞增的集合中獲取一個(gè)隨機(jī)數(shù)。如:random.randrange(10,100,2)石抡,結(jié)果相當(dāng)于從[10,12,14,16,...,96,98]序列中獲取一個(gè)隨機(jī)數(shù)檐嚣。random.randrange(10,100,2)在結(jié)果上與random.choice(range(10,100,2))等效。
>>> import random
>>> print(random.randrange(10,100,2))
72
>>> print(random.choice(range(10,100,2)))
28
>>> print(random.choice(range(10,100,2)))
74
- random.choice(sequence):參數(shù)sequence表示一個(gè)有序類(lèi)型啰扛。sequence在python不是一種特定的類(lèi)型嚎京,而是泛指一系列的類(lèi)型。list隐解,set, tuple鞍帝,字符串都屬于sequence。
>>> import random
>>> print(random.choice("學(xué)習(xí)python"))
t
>>> print(random.choice(["JGood","is","a","handsome","body"]))
is
>>> print(random.choice(("Tuple","list","Dict")))
list
- random.shuffle(x[, random]):用于將一個(gè)列表中的元素打亂煞茫。
>>> import random
>>> p=["pyhton","is","powerful","simple","and so on..."]
>>> random.shuffle(p)
>>> p
['and so on...', 'simple', 'powerful', 'pyhton', 'is']
- random.sample(sequence,k):從指定序列中隨機(jī)獲取指定長(zhǎng)度的片段帕涌,sample函數(shù)不會(huì)修改原有序列摄凡。
>>> import random
>>> list=[1,2,3,4,5,6,7,8,9,10]
>>> a=random.sample(list,5) #從list中隨機(jī)獲取5個(gè)元素,作為一個(gè)片段返回
>>> print(a)
[1, 6, 10, 8, 3]
>>> print(list) #原有序列并沒(méi)有改變
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
3.版本差異
無(wú)
4.學(xué)習(xí)建議
隨機(jī)數(shù)是用于生成測(cè)試入?yún)⒌暮棉k法蚓曼,也常見(jiàn)于各種需要隨機(jī)的場(chǎng)合亲澡。
但是每次隨機(jī)帶來(lái)的不確定性也會(huì)造成某些驗(yàn)證功能的困難,因此可以使用random.seed()通過(guò)指定隨機(jī)的種子值保證每次生成隨機(jī)數(shù)是同一序列的偽隨機(jī)數(shù)纫版。觀察下面的輸出:
import random
random.seed(0) # 種子值可以任意整數(shù)
print("Random number with seed 10 : ", random.random())
#生成同一個(gè)隨機(jī)數(shù)
random.seed(0)
print("Random number with seed 10 : ", random.random())
print("Random number with seed 10 : ", random.random())
print("Random number with seed 10 : ", random.random())
#生成同一個(gè)隨機(jī)數(shù)
random.seed(0)
print("Random number with seed 10 : ", random.random())
print("Random number with seed 10 : ", random.random())
print("Random number with seed 10 : ", random.random())
對(duì)基礎(chǔ)運(yùn)行環(huán)境有疑問(wèn)的谷扣,推薦參考:python函數(shù)深入淺出 0.基礎(chǔ)篇