【Python 第60課】 隨機(jī)數(shù)有些時(shí)日沒發(fā)新課了,今天來(lái)說(shuō)一說(shuō)python中的random模塊。random模塊的作用是產(chǎn)生隨機(jī)數(shù)。之前的小游戲中用到過(guò)random中的randint: import random num = random.randint(1,100) random.randint(a, b)可以生成一個(gè)a到b間的隨機(jī)整數(shù),包括a和b。 a、b都必須是整數(shù),且必須b≥a。當(dāng)?shù)扔诘臅r(shí)候,比如: random.randint(3, 3) 的結(jié)果就永遠(yuǎn)是3 除了randint,random模塊中比較常用的方法還有: random.random() 生成一個(gè)0到1之間的隨機(jī)浮點(diǎn)數(shù),包括0但不包括1,也就是[0.0, 1.0)。 random.uniform(a, b) 生成a、b之間的隨機(jī)浮點(diǎn)數(shù)。不過(guò)與randint不同的是,a、b無(wú)需是整數(shù),也不用考慮大小。 random.uniform(1.5, 3) random.uniform(3, 1.5) 這兩種參數(shù)都是可行的。 random.uniform(1.5, 1.5)永遠(yuǎn)得到1.5。 random.choice(seq) 從序列中隨機(jī)選取一個(gè)元素。seq需要是一個(gè)序列,比如list、元組、字符串。 random.choice([1, 2, 3, 5, 8, 13]) #list random.choice('hello') #字符串 random.choice(['hello', 'world']) #字符串組成的list random.choice((1, 2, 3)) #元組 都是可行的用法。 random.randrange(start, stop, step) 生成一個(gè)從start到stop(不包括stop),間隔為step的一個(gè)隨機(jī)數(shù)。start、stop、step都要為整數(shù),且start。 比如: random.randrange(1, 9, 2) 就是從[1, 3, 5, 7]中隨機(jī)選取一個(gè)。 start和step都可以不提供參數(shù),默認(rèn)是從0開始,間隔為1。但如果需要指定step,則必須指定start。 random.randrange(4) #[0, 1, 2, 3] random.randrange(1, 4) #[1, 2, 3] random.randrange(start, stop, step)其實(shí)在效果上等同于 random.choice(range(start, stop, step)) random.sample(population, k) 從population序列中,隨機(jī)獲取k個(gè)元素,生成一個(gè)新序列。sample不改變?cè)瓉?lái)序列。 random.shuffle(x) 把序列x中的元素順序打亂。shuffle直接改變?cè)械男蛄小?/span> 以上是random中常見的幾個(gè)方法。如果你在程序中需要其中某一個(gè)方法,也可以這樣寫: from random import randint randint(1, 10) 另外,有些編程基礎(chǔ)的同學(xué)可能知道,在隨機(jī)數(shù)中有個(gè)seed的概念,需要一個(gè)真實(shí)的隨機(jī)數(shù),比如此刻的時(shí)間、鼠標(biāo)的位置等等,以此為基礎(chǔ)產(chǎn)生偽隨機(jī)數(shù)。在python中,默認(rèn)用系統(tǒng)時(shí)間作為seed。你也可以手動(dòng)調(diào)用random.seed(x)來(lái)指定seed。 |
|
來(lái)自: 一利陽(yáng)光故事會(huì) > 《Python》