random模塊
import random
random.random() ?0~1 的浮點(diǎn)數(shù)
random.randint(1,10) 1~10的int
Python中的random模塊用于生成隨機(jī)數(shù)。下面介紹一下random模塊中最常用的幾個函數(shù)。
random.randomrandom.random()用于生成一個0到1的隨機(jī)符點(diǎn)數(shù): 0 <= n < 1.0
random.uniformrandom.uniform的函數(shù)原型為:random.uniform(a, b),用于生成一個指定范圍內(nèi)的隨機(jī)符點(diǎn)數(shù),兩個參數(shù)其中一個是上限,一個是下限。如果a > b,則生成的隨機(jī)數(shù)n: a <= n <= b。如果 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),用于生成一個指定范圍內(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)?? #該語句是錯誤的。下限必須小于上限。??
random.randrange
random.randrange的函數(shù)原型為:random.randrange([start], stop[, step]),從指定范圍內(nèi),按指定基數(shù)遞增的集合中 獲取一個隨機(jī)數(shù)。如:random.randrange(10, 100, 2),結(jié)果相當(dāng)于從[10, 12, 14, 16, ... 96, 98]序列中獲取一個隨機(jī)數(shù)。random.randrange(10, 100, 2)在結(jié)果上與 random.choice(range(10, 100, 2) 等效。
random.choicerandom.choice從序列中獲取一個隨機(jī)元素。其函數(shù)原型為:random.choice(sequence)。參數(shù)sequence表示一個有序類型。這里要說明?一下:sequence在python不是一種特定的類型,而是泛指一系列的類型。list, tuple, 字符串都屬于sequence。有關(guān)sequence可以查看python手冊數(shù)據(jù)模型這一章,也可以參考:http://www.17xie.com/read-37422.html?。下面是使用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]),用于將一個列表中的元素打亂。如:
p = ["Python","is",?"powerful","simple",?"and so on..."]?? random.shuffle(p)?? print?p?? #---- 結(jié)果(不同機(jī)器上的結(jié)果可能不一樣。)?? #['powerful', 'simple', 'is', 'Python', 'and so on...']??random.sample
random.sample的函數(shù)原型為:random.sample(sequence, k),從指定序列中隨機(jī)獲取指定長度的片斷。sample函數(shù)不會修改原有序列。
list = [1,?2,?3,?4,?5,?6,?7,?8,?9,?10]?? slice = random.sample(list,?5)??#從list中隨機(jī)獲取5個元素,作為一個片斷返回?? print?slice?? print?list?#原有序列并沒有改變。??
上面這些方法是random模塊中最常用的,在Python手冊中,還介紹其他的方法。感興趣的朋友可以通過查詢Python手冊了解更詳細(xì)的信息。
例子:
import?random?? result?=?random.random()?? print?result #生成0-1的隨機(jī)數(shù)?? ?? print?random.uniform(10,12)??#10-12的隨機(jī)數(shù)?? ?? print?random.randint(30,50) #30-50的隨機(jī)整數(shù) ?? ?? print?random.randrange(10,100,2)?#從10開始到100結(jié)束,步長為2的序列中,隨機(jī)選一個?? ?? list?=?[1,2,5,6,7,8,8]?? print?random.choice(list)???#從序列中隨機(jī)選一個?? ?? ?? ?? random.shuffle(list)?????#重新排列序列?? print?list?? ?? list?=?[1,?2,?3,?4,?5,?6,?7,?8,?9,?10]????? slice?=?random.sample(list,?5)???#從序列中取樣?? print?slice?