天天看點

11-Python Random庫的使用

random庫用于生成随機數

  • 基本随機數函數:

    seed()

    ,

    random()

  • 擴充随機數函數:

    randint()

    getrandbits()

    uniform()

    randrange()

    choice()

    shuffle()

  1. seed(a=None)

    初始化給定的随機數種子,預設為目前系統時間

    random.seed(10) 
    #産生種子10對應的序列
               
  2. random()

    生成一個[0.0, 1.0)之間的随機小數

    random.random()
               
  3. 常用的 經過擴充的 random()方法
    11-Python Random庫的使用
函數 描述
randint(a, b) 生成一個[a, b]之間的整數
randrange(m, n[, k]) 生成一個[m, n)之間以k為步長的随機整數
getrandbits(k) 生成一個k比特長的随機整數
uniform(a, b) 生成一個[a, b]之間的随機小數
choice(seq) 從序列seq中随機選擇一個元素
shuffle(seq) 将序列seq中元素随機排列,傳回打亂後的序列
random.randint(10, 100)
64
random.randrange(10, 100, 10)
80
random.getrandbits(16)
37885
random.uniform(10, 100)
13.096321648808136
random.choice([1,2,3,4,5,6,7,8,9])
8 
s=[1,2,3,4,5,6,7,8,9];random.shuffle(s);print(s)
[3, 5, 8, 9, 6, 1, 2, 7, 4]

           
  1. random是如何生成随機數的呢?
    11-Python Random庫的使用
    11-Python Random庫的使用
    請注意圖二中,左邊的代碼,産生了兩個随機數,而那兩個随機數恰好就是 圖一中 序列的前兩個;而右邊的代碼則是生成完全相同的兩個随機數
    是以 seed(10) 生成一個随機數序列,之後random()會按照順序一次取出這個随機數序列中的随機數
  2. 我們什麼時候會使用seed()函數呢?直接預設的用系統目前時間豈不是更好?

    當我們的程式希望 生成的随機數能夠 複現 的時候,那麼設定 seed()函數 就會很好了,因為他生成的随機數是固定的