python之random庫
random庫是使用隨機數的一個python標準庫。
random()是不能直接訪問的,需要匯入 random 模組,然後通過 random 靜態物件呼叫該方法。即使用前需要匯入:import random
random庫包含兩類函式,常用的有8個:
--基本隨機函式:seed( ),random( )
--擴充套件隨機函式:randint( ),randrange( ),shuffle( ),uniform( ),choice( ),getrandbits( )
其它的幾個函式用的不多。
基本隨機數:
Python中產生隨機數使用隨機數種子來產生。(只要種子相同,產生的隨機序列,無論是每一個數,還是數與數之間的關係都是確定的,所以隨機數種子確定了隨機序列的產生)。
函式 | 描述 |
seed(a=None) |
初始化給定的隨機數種子,預設為當前系統時間 >>>random.seed(10) #產生種子10對應的序列 |
random() |
生成一個[0.0,1.0)之間的隨機小數n: 0<=n<1 >>> random.random() 0.5845462257019302 >>> random.random() 0.8440678976619022 >>> random.random() 0.1564189183874064 |
擴充套件隨機數函式:
在random庫中,最基本的是seed 和random 函式,但時功能比較單一,為此產生了6個擴充套件隨機數函式。
函式 | 描述 |
randint(a, b) |
產生一個[a,b]間的整數n。a<=n<=b >>> random.randint(10,20) 11 >>> random.randint(10,20) 20 >>> random.randint(10,20) 13 >>> random.randint(10,20) 14 |
uniform(a, b) |
產生一個[a,b]之間的隨機浮點數。區間可以不是整數 >>> random.uniform(1.1,5.5) 5.052063475972429 >>> random.uniform(1.1,5.5) 2.4832007418083832 >>> random.uniform(1.1,5.5) 3.5155216096545847 >>> random.uniform(1.1,5.5) 3.018536213546138 |
randrange(m, n, [,k]) |
生成一個[m,n)之間以k為步長的隨機整數。 >>> random.randrange(10, 20, 2) 14 >>> random.randrange(10, 20, 3) 10 |
shuffle(seq) 序列相關 |
將序列seq中元素隨機排列,返回打亂後的序列。 >>> s = [1, 6, 7, 9, 5] >>> random.shuffle(s) >>> print(s) [6, 9, 1, 7, 5] |
choice(seq) 序列相關 |
從序列中隨機選擇一個元素。 >>> random.choice([1,2,3,5,9]) 1 >>> random.choice([1,2,3,5,9]) 9 >>> random.choice([1,2,3,5,9]) 5 >>> random.choice([1,2,3,5,9]) 2 |
getrandbits(k) |
生成一個k位元長的隨機整數。 >>> random.getrandbits(3) 4L >>> random.getrandbits(3) 3L >>> random.getrandbits(16) 21480L >>> random.getrandbits(16) 4986L |