Python中的random模塊用於生成隨機數。
序號 | 函數 | 描述 | 備註 |
---|---|---|---|
1 | random.random() | 生成一個0到1的隨機浮點數 | |
2 | random.uniform(a,b) | 生成一個指定範圍(a,b)內的隨機浮點數 | |
3 | random.randint(a, b) | 生成一個指定範圍[a,b]內的整數 | |
4 | random.randrange(start, stop, step) | 從指定範圍內,按指定基數遞增的集合中 獲取一個隨機數 | 如:random.randrange(10, 100, 2),結果相當於從[10, 12, 14, 16, … 96, 98]序列中獲取一個隨機數。 |
5 | random.choice(sequence) | 從序列中獲取一個隨機元素 | sequence在python不是一種特定的類型,而是泛指一系列的類型。list, tuple, 字符串都屬於sequence |
6 | random.shuffle() | 用於將一個列表中的元素打亂 | 返回值是None |
7 | random.sample(sequence, k) | 從指定序列中隨機獲取指定長度的片斷 | sample函數不會修改原有序列。 |
實例
- 生成0-1之間的隨機浮點數
import random
print("生成0-1之間的隨機數:",random.random())
生成0-1之間的隨機數: 0.8319786901712933
- 生成指定範圍的隨機浮點數
import random
print("生成10-11之間的隨機數:",random.uniform(10,11))
生成10-11之間的隨機數: 10.228848890127637
- 任意範圍內的整數
import random
print("生成10-20之間的隨機整數:",random.randint(10,20))
生成10-20之間的隨機整數: 12
- 遞增集合隨機數
import random
print("生成10-100之間偶數隨機數:",random.randrange(10,100,2))
生成10-100之間偶數隨機數: 46
- 序列中獲取一個隨機元素
import random
a = [1,2,3,4,'lll','qqq']
b = "我愛中華人名共和國 I love China"
c = ("list","str",tuple)
print("隨機獲取序列中的一個元素:",random.choice(a))
print("隨機獲取序列中的一個元素:",random.choice(b))
print("隨機獲取序列中的一個元素:",random.choice(c))
隨機獲取序列中的一個元素: 4
隨機獲取序列中的一個元素: 人
隨機獲取序列中的一個元素: <class ‘tuple’>
- 打亂一個列表中的元素
import random
a = [1,2,3,4,'lll','qqq']
random.shuffle(a)
print("將列表打亂後結果:",a)
將列表打亂後結果: [1, ‘lll’, 4, 3, 2, ‘qqq’]
- 從指定序列中隨機獲取指定長度的片斷
import random
a = [1,2,3,4,'lll','qqq',"fgh"]
#從list中隨機獲取2個元素,作爲一個片斷返回,原有序列並沒有改變。
slice = random.sample(a,2)
print("新序列:%s,\n原序列:%s"%(slice,a))
新序列:[1, 4],
原序列:[1, 2, 3, 4, ‘lll’, ‘qqq’, ‘fgh’]