Python亂數:random()函數簡介


    1. 亂數1

    2. # -*- coding: UTF-8 -*-
      import random
      print( random.randint(1,10) )        # 產生 1 到 10 的一個整數型亂數  
      print( random.random() )             # 產生 0 到 1 之間的隨機浮點數
      print( random.uniform(1.1,5.4) )     # 產生  1.1 到 5.4 之間的隨機浮點數,區間可以不是整數
      print( random.choice('tomorrow') )   # 從序列中隨機選取一個元素
      print( random.randrange(1,100,2) )   # 生成從1到100的間隔為2的隨機整數
      a=[1,3,5,6,7]                # 將序列a中的元素順序打亂
      random.shuffle(a)
      print(a)
      
      輸出
      
    3. 亂數2:Python seed() 函數

    4. seed() 方法改變亂數產生器的種子,可以在調用其他隨機模組函數之前調用此函數。我們調用 random.random() 生成亂數時,每一次生成的數都是隨機的。但是,當我們預先使用 random.seed(x) 設定好種子之後,其中的 x 可以是任意數字,如10,這個時候,先調用它的情況下,使用 random() 生成的亂數將會是同一個。注意:seed()是不能直接訪問的,需要導入 random 模組,然後通過 random 靜態物件調用該方法。
      #!/usr/bin/python
      # -*- coding: UTF-8 -*-
      import random
      print random.random()
      print random.random()
      print "------- 設置種子 seed -------"
      random.seed( 10 )
      print "Random number with seed 10 : ", random.random()
      # 生成同一個亂數
      random.seed( 10 )
      print "Random number with seed 10 : ", random.random()
      # 生成同一個亂數
      random.seed( 10 )
      print "Random number with seed 10 : ", random.random()
      
      以上實例運行後輸出結果為:
      0.739880443211
      0.78969784712
      ------- 設置種子 seed -------
      Random number with seed 10 :  0.57140259469
      Random number with seed 10 :  0.57140259469
      Random number with seed 10 :  0.57140259469
      
    5. 亂數3

    6. Python 生成亂數、隨機字串
      # -*- coding: UTF-8 -*-
      import random
      import string
      # 隨機整數:
      print random.randint(1,50)
      # 隨機選取0到100間的偶數:
      print random.randrange(0, 101, 2)
      # 隨機浮點數:
      print random.random()
      print random.uniform(1, 10)
      # 隨機字元:
      print random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*()')
      # 多個字元中生成指定數量的隨機字元:
      print random.sample('zyxwvutsrqponmlkjihgfedcba',5)
      # 從a-zA-Z0-9生成指定數量的隨機字元:
      ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8))
      print ran_str
      # 多個字元中選取指定數量的字元組成新字串:
      print ''.join(random.sample(['z','y','x','w','v','u','t','s','r','q',
      'p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a'], 5))
      # 隨機選取字串:
      print random.choice(['剪刀', '石頭', '布'])
      # 打亂排序
      items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
      print random.shuffle(items)
      
      輸出