前言:
隨機數模塊實現了各種分布的偽隨機數生成器。對于整數,從范圍中有統一的選擇。 對于序列,存在隨機元素的統一選擇、用于生成列表的隨機排列的函數、以及用于隨機抽樣而無需替換的函數。
1、生成隨機數
1.1 random.random() 方法
返回隨機生成的一個實數,它在[0,1)范圍內。
語法結構:
1
2
3
|
import random # 導入 random 模塊 random.random() |
1.2 random.randint方法
語法格式:
random.randint(a,b)
函數返回數字 N
,N
為 a
到 b
之間的數字(a <= N <= b
),包含 a
和 b
1.3 random.uniform方法
語法格式:
random.uniform(a,b)
函數返回一個隨機浮點數 N
,當 a <= b
時 a <= N <= b
,當 b < a
時 b <= N <= a
。
1.4 random.randrange方法
語法結構:
random.randrange(start, stop[, step])
-
start: 計數從
start
開始。默認是從 0 開始。例如randrange(5)
等價于range(0, 5);
-
stop: 計數到
stop
結束,但不包括stop
。例如:randrange(0, 5)
是[0, 1, 2, 3, 4]
沒有5 -
step:步長,默認為1。例如:
range(0, 5)
等價于randrange(0, 5, 1)
返回一個隨機范圍內的數字
等價于choice(range(start, stop, step))
示例代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import random random_value = random.random() print (random_value) randint_value = random.randint( 1 , 3 ) # 返回隨機整數 print (randint_value) uniform_value = random.uniform( 1 , 3 ) # 返回隨機浮點數 print (uniform_value) randrange_value = random.randrange( 1 , 100 , 2 ) # 1到100步長為2(這里只能取到100以為的奇數) print (randrange_value) |
每次運行取到的結果都是不一樣的。
2、用于序列的函數
2.1 random.choice(seq)
從非空序列中返回一個隨機元素,如果序列為空,則拋出異常
示例代碼:
1
2
3
4
5
|
import random value = random.choice( range ( 1 , 100 , 2 )) # 這個等于random.randrange(1, 100, 2) print (value) |
好像洗牌就要用這個方法哎
生成一個驗證碼的小案例:
1
2
3
4
5
6
7
8
9
10
|
import random # 一個生成驗證號的小案例 all_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' captcha = '' for _ in range ( 4 ): a = random.choice(all_chars) captcha + = a # 連接字符串 print (captcha) |
2.2 random.shuffle()方法
shuffle(list)
方法將序列的所有元素隨機排序
示例代碼:
1
2
3
4
5
|
import random list1 = [ "beautiful" , "cute" , "beautiful" , 'prefect' , "beautiful" , "甜甜" , 'lovely' ] random.shuffle(list1) print (list1) |
2.3 random.sample()方法
random.sample(sequence, k)
,從指定序列中隨機獲取指定長度的片斷。sample
函數不會修改原有序列。切片長度不能超過原有的長度,否則會拋出異常
示例代碼:
1
2
3
4
5
|
import random list1 = [ "beautiful" , "cute" , "beautiful" , 'prefect' , "beautiful" , "甜甜" , 'lovely' ] list2 = random.sample(list1, len (list1)) print ( "原列表:" , list1) print ( "新列表:" , list2) |
這個方法可以給原序列排序并不破壞原有序列
到此這篇關于Python
隨機數模塊詳情的文章就介紹到這了,更多相關Python
隨機數模塊內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://juejin.cn/post/7024054686206410783