📅  最后修改于: 2023-12-03 14:46:42.031000             🧑  作者: Mango
在Python中,生成随机数的常用模块是random
。这个模块提供了生成各种随机数的函数和类,包括整数、浮点数、布尔值等。本文将介绍random
模块的常用函数和类。
要使用random
模块中的函数和类,需要先导入这个模块:
import random
可以使用random.randint(a, b)
函数生成[a, b]之间的随机整数:
import random
x = random.randint(1, 10)
print(x)
输出结果:
5
可以使用random.uniform(a, b)
函数生成[a, b]之间的随机浮点数:
import random
x = random.uniform(0, 1)
print(x)
输出结果:
0.625737197530462
可以使用random.choice(seq)
函数从一个序列中随机选择一个元素:
import random
seq = ['apple', 'banana', 'orange']
x = random.choice(seq)
print(x)
输出结果:
orange
可以使用random.shuffle(seq)
函数打乱一个序列中元素的顺序:
import random
seq = ['apple', 'banana', 'orange']
random.shuffle(seq)
print(seq)
输出结果:
['banana', 'apple', 'orange']
可以使用random.choices(population, weights=None, *, cum_weights=None, k=1)
函数生成随机字符串。其中,population
是备选字符集合,weights
是备选字符的权重,cum_weights
是备选字符的累计权重,k
是要生成的字符串长度。
import random
import string
characters = string.ascii_letters + string.digits
password = ''.join(random.choices(characters, k=8))
print(password)
输出结果:
pCjRcrMX
可以使用random.seed(a=None, version=2)
函数生成随机数种子。a
是给定的种子,如果不提供种子,则使用系统时间作为种子。version
是种子的版本号。
import random
random.seed(42) # 使用给定种子
print(random.random())
random.seed() # 使用系统时间作为种子
print(random.random())
输出结果:
0.6394267984578837
0.3723230150207065
使用random
模块生成的随机数是伪随机数,因为它们实际上是依据某个确定的算法计算得到的。但是这个算法的设计非常复杂,使得生成的随机数表现得很接近真正的随机数。因此,我们可以把这些伪随机数看做是真正的随机数。
注意,生成的伪随机数是有可重复性的。也就是说,如果我们使用相同的种子,就能生成相同序列的随机数。这个特性在实验开发和调试中非常有用。
下面是一个例子:
import random
random.seed(42)
print(random.random())
print(random.random())
random.seed(42)
print(random.random())
print(random.random())
输出结果:
0.6394267984578837
0.025010755222666936
0.6394267984578837
0.025010755222666936
注意,第1行和第3行输出的数值是相等的,第2行和第4行输出的数值也是相等的。这是因为我们在第3行和第4行使用了相同的种子42。