Python學習筆記 十 (Random庫使用)

2021-10-02 15:48:34 字數 2274 閱讀 8367

我們在寫一些程式時會遇到需要隨機數的情況,random庫就是這樣乙個產生隨機數的庫,為了鞏固所學知識我對random庫的使用進行簡單總結,希望能對你我有益。

一、random庫的介紹

是python中用於生成隨機數的標準庫,計算機產生的隨機數不是大自然中真正意義上的隨機數,而是根據所給定種子然後通過梅森旋轉演算法所計算出的偽隨機數列。

二、random庫的操作函式

由於random是python中的標準庫,所以只需要import random匯入random包即可。

seed()函式:初始所給定的種子的值,引數預設為系統時間。

random()函式:生成乙個 0.0 - 1.0 之間的隨機小數。

import random

random.seed(10)

r = random.random(

)print

(r)---

----

----

----

----

==0.5714025946899135

>>

>

在執行時可以發現,若是種子相同,那麼產生的隨機數列是相同的。

>>

>

import random

>>

> random.seed(10)

>>

>

print

(random.random())

0.5714025946899135

>>

>

print

(random.random())

0.4288890546751146--

----

----

----

----

----

----

----

--->>

> random.seed(10)

>>

>

print

(random.random())

0.5714025946899135

>>

>

隨機數列相同 != 隨機數相同,還需要看隨機函式使用的次數,例如兩個程式種子相同,那麼第一次random()和另乙個程式第一次random()的相同,因為隨機數是根據產生的隨機數列依次獲取的,如果使用預設的種子(系統時間),由於系統時間是乙個浮點數且變化較快,因此產生的隨機數基本不會相同。

randint(a, b)函式:生成 [a,b] a 到 b 之間的隨機整數。

randrange(m, n, k) 函式:生成 [m, n) m不到n之間步長為 k 的隨機整數。

>>

>

import random

>>

>

print

(random.randrange(1,

5,2)

)1>>

>

print

(random.randrange(1,

5,2)

)3>>

>

print

(random.randrange(1,

5,2)

)1>>

>

print

(random.randrange(1,

5,2)

)1>>

>

print

(random.randrange(1,

5,2)

)3>>

>

print

(random.randrange(1,

5,2)

)1>>

>

print

(random.randrange(1,

5,2)

)3

步長為2是指指定遞增基數為2(在區間的奇數中取得隨機數),也可以理解為隨機數是從區間中按步長排列後的數中取得,步長預設為1。

getrandbits(k)函式:生成 k 比特長的隨機數。

uniform(a, b)函式:生成 [a, b] a 到 b 之間的隨機小數。

choice(序列)函式:從序列中隨機選乙個數。

shuffle(序列)函式:將序列打亂並返回。

待續…

golang學習筆記 rand

在golang中,有兩個包提供了rand,分別為 math rand 和 crypto rand 對應兩種應用場景。golang 隨機數有乙個很有趣的地方,如果我們不自行定義隨機數種子的話,每次生成的隨機數都是一樣的。golang 在預設隨機的時候,固定以數字 1 作為種子。既然種子都固定了的話,那...

Python學習筆記(十)

mylab 專案實戰 1 在templates中乙個index.html我需要引入當前資料夾中的另乙個網頁,我直接在index的 中引入 html無效 最後,我在這個專案的主目錄下的urls中進行設定,可行 2 在呼叫網頁的時候,進行views設定,就已經把處理函式給選定了 直接在views,用re...

python學習筆記十

字典遍歷 集合函式 copy僅拷貝物件本身,而不對中的子物件進行拷貝,故對子物件進行修改也會隨著修改。dict1 dict2 dict1 dict3 dict1.copy dict1 user root dict1 num remove 1 print dict1 print dict2 print...