random庫是用於產生並運用隨機數的標准庫。
從概率論角度來說,隨機數是隨機產生的數據(比如拋硬幣),但時計算機是不可能產生隨機值,真正的隨機數也是在特定條件下產生的確定值,計算機不能產生真正的隨機數,只能產生偽隨機數
一、調用語句:
import random # python中的隨機數生成模塊
二、基本隨機數函數
(一)seed(a):設置初始化隨機種子,可重現相同隨機數序列,與其他函數配套使用
使用:
random.seed(a)
設置random包的seed值,該值對於生成隨機數至為重要,a取整數或浮點數不設置時默認以系統時間為種子
(二)random():下述
二、擴展隨機數函數
函數功能主要分為:
(一)獲取隨機小數
- random():生成一個[0.0,1.0)之間的隨機小數
In:
import random x = random.random() print(x)
Out:
>>0.8268016072790678
2.uniform(a,b):生成一個[a,b]之間的隨機小數
In:
import random x = random.uniform(10, 20) print(x)
Out:
>>17.744508676671582
(二)獲取隨機整數
- randint(a,b):生成一個[a,b](b>a)之間的隨機整數(僅按域的要求獲得隨機整數)
In:
import random x = random.randint(10, 20) print(x)
Out:
>>12
2.getrandbits(k):生成一個k比特長度的隨機整數 (按存儲大小的要求獲得隨機整數)
In:
import random x = random.getrandbits(3) #隨機生成二進制長度為3位的十進制整數(0-7) print(x)
Out:
>>5
3.randrange(start,stop[,step]):生成一個[start,stop)之間以step為步數的隨機整數 (按域、步長的要求獲得隨機整數)
In:
import random x = random.randrange(10, 100, 2) #相當於從序列[10, 12, ..., 96, 98]中隨機返回一個數。 print(x)
Out:
>>62
(三)對序列類型進行隨機操作
- choice(seq):從序列類型seq(如字符串,列表,元組)中隨機返回一個元素(用於序列抽1簽)
In:
import random x = random.choice(["i", "love", "Math"]) print(x)
Out:
>>Math
2.shuffle(seq):將序列類型seq中元素隨機排序,返回打亂后序列,seq被改變(用於序列洗牌)
In:
import random x = ['python', 'is', 'powerful', 'simple', '.'] random.shuffle(x) print(x)#會修改原有序列
Out:
>>['is', 'powerful', 'simple', '.', 'python']
3.sample(pop,k):從序列類型pop中選取k個元素,以列表類型返回(用於序列抽K簽,存入列表)
In:
import random list = [1, 2, 3, 4, 5, 6, 7] x = random.sample(list, 5) # 從list中隨機選取5個元素,生成一個新的list並返回 print("改變后序列:",x) print("原序列:",list)#原序列不改變
Out:
>>改變后序列: [2, 1, 4, 5, 7]
原序列: [1, 2, 3, 4, 5, 6, 7]
最后:random庫找隨機數在一些算法中使用最多,譬如遺傳算法找遺傳因子,找最優路徑時先生成隨機路徑再優化等等。而且random庫並不難學,只要熟悉了函數,就能夠很快上手幫助自己解決問題的