Python中的random模塊用于生成隨機(jī)數(shù)。下面介紹一下random模塊中最常用的幾個(gè)函數(shù)溪北。
random.random
random.random()用于生成一個(gè)0到1的隨機(jī)符點(diǎn)數(shù): 0 <= n < 1.0
random.uniform
random.uniform的函數(shù)原型為:random.uniform(a, b),用于生成一個(gè)指定范圍內(nèi)的隨機(jī)符點(diǎn)數(shù),兩個(gè)參數(shù)其中一個(gè)是上限之拨,一個(gè)是下限茉继。如果a > b,則生成的隨機(jī)數(shù)n: a <= n <= b蚀乔。如果 a <b烁竭, 則 b <= n <= a抵屿。
print random.uniform(10,20)
print random.uniform(20,10)
#----結(jié)果(不同機(jī)器上的結(jié)果不一樣)
#18.7356606526
#12.5798298022
random.randint
random.randint()的函數(shù)原型為:random.randint(a, b)白群,用于生成一個(gè)指定范圍內(nèi)的整數(shù)谆刨。其中參數(shù)a是下限姥份,參數(shù)b是上限芳杏,生成的隨機(jī)數(shù)n: a <= n <= b
print random.randint(12,20) #生成的隨機(jī)數(shù)n:12<=n<=20
print random.randint(20,20) #結(jié)果永遠(yuǎn)是20
#print random.randint(20,10) #該語(yǔ)句是錯(cuò)誤的碾阁。下限必須小于上限烛愧。
random.randrange
random.randrange的函數(shù)原型為:random.randrange([start], stop[, 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) 等效姆打。
random.choice
random.choice從序列中獲取一個(gè)隨機(jī)元素。其函數(shù)原型為:random.choice(sequence)肠虽。參數(shù)sequence表示一個(gè)有序類型幔戏。這里要說(shuō)明一下:sequence在python不是一種特定的類型,而是泛指一系列的類型舔痕。list, tuple, 字符串都屬于sequence评抚。有關(guān)sequence可以查看python手冊(cè)數(shù)據(jù)模型這一章。下面是使用choice的一些例子:
print random.choice("學(xué)習(xí)Python")
print random.choice(["JGood","is","a","handsome","boy"])
print random.choice(("Tuple","List","Dict"))
random.shuffle
random.shuffle的函數(shù)原型為:random.shuffle(x[, random])伯复,用于將一個(gè)列表中的元素打亂慨代。如:
p=["Python","is","powerful","simple","andsoon..."]
random.shuffle(p)
printp
#----結(jié)果(不同機(jī)器上的結(jié)果可能不一樣。)
#['powerful','simple','is','Python','andsoon...']
random.sample
random.sample的函數(shù)原型為:random.sample(sequence, k)啸如,從指定序列中隨機(jī)獲取指定長(zhǎng)度的片斷侍匙。sample函數(shù)不會(huì)修改原有序列。
list=[1,2,3,4,5,6,7,8,9,10]
slice=random.sample(list,5)#從list中隨機(jī)獲取5個(gè)元素叮雳,作為一個(gè)片斷返回
print slice
print list #原有序列并沒有改變想暗。