1. 程式人生 > >python--random庫基本介紹

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