Python生成隨機(jī)數(shù)的方法詳解(最全)
python生成隨機(jī)數(shù)都有哪些辦法呢
- 使用 random 模塊:random模塊是python內(nèi)置的模塊,使用方法如random.randint()生成一個(gè)隨機(jī)整數(shù)。
- 使用 NumPy 庫(kù):NumPy 是一個(gè)強(qiáng)大的數(shù)值計(jì)算庫(kù),它提供了生成隨機(jī)數(shù)的功能,例如numpy.random.randint()生成一個(gè)隨機(jī)整數(shù)。
- 使用 secrets 模塊:secrets模塊是python3.6版本引入的新模塊,專門用于生成安全隨機(jī)數(shù),例如secrets.randbelow()生成一個(gè)隨機(jī)整數(shù)。
- 使用 random.org 網(wǎng)站:random.org 網(wǎng)站可以生成真正的隨機(jī)數(shù),可以使用Python的requests模塊從該網(wǎng)站獲取隨機(jī)數(shù)。
- 使用 random.choices()方法: random.choices()方法可以從一個(gè)序列中隨機(jī)選擇多個(gè)元素。
使用 random 模塊
使用 random 模塊的 randint() 函數(shù)生成隨機(jī)整數(shù):
import random ???????#生成隨機(jī)整數(shù) random_int = random.randint(1,100) print(random_int)
也可以使用 random 模塊的 random() 函數(shù)生成隨機(jī)小數(shù):
import random #生成隨機(jī)小數(shù) random_float = random.random() print(random_float)
可以使用 random 模塊的 choice() 函數(shù)從列表中隨機(jī)選取一個(gè)元素:
import random #隨機(jī)從列表中選取一個(gè)元素 random_list = [1, 2, 3, 4, 5] random_element = random.choice(random_list) print(random_element)
還可以使用 random 模塊的 sample() 函數(shù)隨機(jī)從列表中選取多個(gè)不重復(fù)的元素:
import random #隨機(jī)從列表中選取多個(gè)不重復(fù)的元素 random_list = [1, 2, 3, 4, 5] random_elements = random.sample(random_list, 3) print(random_elements)
最后,還可以使用 random 模塊的 shuffle() 函數(shù)隨機(jī)打亂列表的順序:
import random #隨機(jī)打亂列表的順序 random_list = [1, 2, 3, 4, 5] random.shuffle(random_list) print(random_list)
使用 NumPy 庫(kù)
代碼如下所示:
import numpy as np # 生成一個(gè)隨機(jī)整數(shù) rand_int = np.random.randint(low=0, high=100) print("隨機(jī)整數(shù):", rand_int) # 生成一個(gè)包含隨機(jī)整數(shù)的數(shù)組 rand_array = np.random.randint(low=0, high=100, size=(5,)) print("隨機(jī)整數(shù)數(shù)組:", rand_array)
使用 NumPy 生成隨機(jī)數(shù)的優(yōu)勢(shì)在于,它提供了豐富的隨機(jī)數(shù)生成功能,可以生成各種形狀和分布的隨機(jī)數(shù)組,在數(shù)據(jù)分析、機(jī)器學(xué)習(xí)等領(lǐng)域有廣泛應(yīng)用。
使用 secrets 模塊
secrets模塊提供了更安全的方法,且易于使用。
使用secrets.randbelow()可生成一個(gè)隨機(jī)整數(shù),而無(wú)需關(guān)心隨機(jī)數(shù)的范圍。
它可以保證生成的隨機(jī)數(shù)具有足夠的隨機(jī)性,適用于密碼生成、加密等安全相關(guān)的場(chǎng)景。
詳細(xì)代碼可以參考以下例子:
import secrets random_number = secrets.randbelow(100) print(random_number)
使用 random.org 網(wǎng)站
random.org 網(wǎng)站是一個(gè)生成真正隨機(jī)數(shù)的網(wǎng)站,你可以使用Python的requests模塊從該網(wǎng)站獲取隨機(jī)數(shù),使用方法如下:
import requests import json # 請(qǐng)求隨機(jī)數(shù)的API url = 'https://www.random.org/integers/?num=1&min=1&max=100&col=1&base=10&format=plain&rnd=new' # 發(fā)送請(qǐng)求并獲取隨機(jī)數(shù) response = requests.get(url) random_number = response.text # 轉(zhuǎn)換為整數(shù)并打印 random_number = int(random_number) print(random_number)
這是一個(gè)使用requests從random.org獲取隨機(jī)數(shù)的簡(jiǎn)單示例。你可以根據(jù)需求自定義生成隨機(jī)數(shù)的數(shù)量、最小值和最大值。
使用 random.choices()方法
random.choices() 方法可以從指定的序列中隨機(jī)選擇多個(gè)元素,并以列表的形式返回選擇的結(jié)果。
該方法的語(yǔ)法如下:
random.choices(sequence, weights=None, *, cum_weights=None, k=1)
詳細(xì)參數(shù)如下:
- sequence:要從中選擇的元素的序列
- weights:序列中各元素的概率分布,可以為 None(默認(rèn)值,表示所有元素的概率相等)
- cum_weights:weights 參數(shù)的累積概率分布
- k:選擇的元素個(gè)數(shù)
到此這篇關(guān)于Python生成隨機(jī)數(shù)的方法詳解(最全)的文章就介紹到這了,更多相關(guān)Python隨機(jī)數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Socket多線程并發(fā)原理及實(shí)現(xiàn)
這篇文章主要介紹了Python Socket多線程并發(fā)原理及實(shí)現(xiàn),幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12使用Python實(shí)現(xiàn)畫(huà)一個(gè)中國(guó)地圖
今天小編就為大家分享一篇使用Python實(shí)現(xiàn)畫(huà)一個(gè)中國(guó)地圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11Python中的random函數(shù)實(shí)例詳解
random模塊提供生成偽隨機(jī)數(shù)的函數(shù),在使用時(shí)需要導(dǎo)入random模塊,這篇文章主要介紹了Python中的random函數(shù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02python3.0 模擬用戶登錄,三次錯(cuò)誤鎖定的實(shí)例
下面小編就為大家?guī)?lái)一篇python3.0 模擬用戶登錄,三次錯(cuò)誤鎖定的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11pytorch實(shí)現(xiàn)對(duì)輸入超過(guò)三通道的數(shù)據(jù)進(jìn)行訓(xùn)練
今天小編就為大家分享一篇pytorch實(shí)現(xiàn)對(duì)輸入超過(guò)三通道的數(shù)據(jù)進(jìn)行訓(xùn)練,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01python中django框架通過(guò)正則搜索頁(yè)面上email地址的方法
這篇文章主要介紹了python中django框架通過(guò)正則搜索頁(yè)面上email地址的方法,涉及django框架及正則表達(dá)式的使用技巧,需要的朋友可以參考下2015-03-03