python--random庫基本介紹
random庫是使用隨機數的Python標準庫
python中用於生成偽隨機數的函式庫是random
因為是標準庫,使用時候只需要import random
random庫包含兩類函式,常用的共9個
--基本隨機函式: seed(), random()
--擴充套件隨機函式:randint(), getrandbits(), uniform(), randrange(), choice(), shuffle(),sample()
基本隨機數
函式 | 描述 |
seed(a=None) | 初始化給定的隨機數種子,預設為當前系統時間 >>>random.seed(10) #產生種子10對應的序列 |
random() | 生成一個[0.0,1.0)之間的隨機小數 >>>random.random() 0.5714025946899135 #隨機數產生與種子有關,如果種子是1哦,第一個數必定是這個 |
使用隨機數種子的好處是可以復現有隨機數的程式
擴充套件隨機數函式
在random庫中,最基本的是seed 和random 函式,但時功能比較單一,為此產生了6個擴充套件隨機數函式
函式 | 描述 |
randint(a,b) | 生成一個[a,b]之間的整數 >>>random.randint(10,100) |
randrange(m,n[,k]) | 生成一個[m,n)之間以k為步長的隨機整數 >>>random.randrange(10,100,10) |
getrandbits(k) | 生成一個k位元長的隨機整數 >>>random.getrandbits(16) 37885 |
uniform(a,b) | 生成一個[a,b]之間的隨機小數 >>>random.uniform(10,100) 16.848041210321334 |
choice(seq) 序列相關 |
從序列中隨機選擇一個元素 >>>random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]) 8 |
shuffle(seq) 序列相關 |
將序列seq中元素隨機排列,返回打亂後的序列 >>>s=[1, 2, 3, 4, 5, 6, 7, 8, 9]; random.shuffle(s); print(s) [9, 4, 6, 3, 5, 2, 8, 7, 1] |
sample()
random.sample(sequence, k),從指定序列中隨機獲取指定長度的片斷。sample函式不會修改原有序列
程式碼如下:print(random.sample('abcdefghijklmnopqrstuvwxyz', 3))
#列印結果['a', 'o', 'p']
下面舉一些常見的例子:
隨機整數:
程式碼如下:
>>> import random
>>> random.randint(0,99)
# 21
隨機選取0到100間的偶數:
程式碼如下:
>>> import random
>>> random.randrange(0, 101, 2) # 42 隨機浮點數: 程式碼如下: >>> import random >>> random.random() 0.85415370477785668 >>> random.uniform(1, 10) # 5.4221167969800881 隨機字元: 程式碼如下: >>> import random >>> random.choice('abcdefg&#%^*f') # 'd' 多個字元中選取特定數量的字元: 程式碼如下: >>> import random random.sample('abcdefghij', 3) # ['a', 'd', 'b'] 多個字元中選取特定數量的字元組成新字串: 程式碼如下: >>> import random >>>''.join( random.sample(['a','b','c','d','e','f','g','h','i','j'], 3) ) # 'fih' 隨機選取字串: 程式碼如下: >>> import random >>> random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] ) # 'lemon' 洗牌: 程式碼如下: >>> import random >>> items = [1, 2, 3, 4, 5, 6] >>> random.shuffle(items) >>> items # [3, 2, 5, 6, 4, 1]
參考文件: http://www.jb51.net/article/50066.htm