Python Random模塊生成偽隨機數字


This module implements pseudo-random number generators for various distributions.

對於整數,有一個范圍的均勻選擇;

對於序列,存在隨機元素的均勻選擇,產生就地列表的隨機置換的函數,以及用於無替換的隨機采樣的函數

Almost all module functions depend on the basic function random(),其在半開放范圍[0.0,1.0)中均勻地生成隨機浮點數。

一、整數的函數

random.randrange(stop)

random.randrange(start, stop[, step])

random.randrange(start, stop[, step])返回一個從start到stop范圍內的隨機整數(start,stop,step都是整數,不包含stop)。

random.randint(a, b)

返回一個隨機整數n,a <= n <= b

二、序列函數

random.choice(seq)從一個非空序列seq中返回隨機一個元素,如果seq為空,則引發IndexError。

random.shuffle(x,[random]):原地攪亂序列x,打亂一個序列。

random.sample(population,k):返回從群體序列或集合中選擇的唯一元素的k長度列表。用於隨機抽樣,無序更換。隨機選擇多個返回,返回的個數為函數的第二個參數

random.random() :返回[0.0,1.0]中隨機浮點數。

random.uniform(a,b) : 根據等式+中的浮點舍入,端點值b (ba) random()

>>> import random
#隨機小數
>>> random.random()      # 大於0且小於1之間的小數
0.7664338663654585
>>> random.uniform(1,3) #大於1小於3的小數
1.6270147180533838

#隨機整數
>>> random.randint(1,5)  # 大於等於1且小於等於5之間的整數
>>> random.randrange(1,10,2) # 大於等於1且小於10之間的奇數


#隨機選擇一個返回
>>> random.choice([1,'23',[4,5]])  # #1或者23或者[4,5]
#隨機選擇多個返回,返回的個數為函數的第二個參數
>>> random.sample([1,'23',[4,5]],2) # #列表元素任意2個組合
[[4, 5], '23']


#打亂列表順序
>>> item=[1,3,5,7,9]
>>> random.shuffle(item) # 打亂次序
>>> item
[5, 1, 3, 7, 9]
>>> random.shuffle(item)
>>> item
[5, 9, 7, 1, 3]

練習:生成隨機驗證碼

import random

def v_code():

    code = ''
    for i in range(5):

        num=random.randint(0,9)
        alf=chr(random.randint(65,90))
        add=random.choice([num,alf])
        code="".join([code,str(add)])

    return code

print(v_code())

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM