📜  随机数 pythn - Python (1)

📅  最后修改于: 2023-12-03 15:42:24.602000             🧑  作者: Mango

随机数 Python介绍

在Python中,生成随机数是一个常见的任务。随机数在许多应用程序中很有用,例如,生成密码,模拟游戏和生成测试数据,等等。

Python中的随机数生成器是通过random模块来实现的。在本文中,我们将介绍Python中如何使用random模块来生成随机数。

生成随机数

Python中有两种方法来生成随机数:生成伪随机数和生成真随机数。生成伪随机数使用的是确定性算法,而生成真随机数使用的是物理设备,例如声音或触控设备。

生成伪随机数

在Python中,我们使用random模块的randint()函数来生成伪随机数。该函数的语法如下:

import random

rand_num = random.randint(start, end)

其中,startend 分别是随机数的范围,包括 startend。下面是一个例子,生成一个1到10之间的随机整数:

import random

rand_num = random.randint(1, 10)
print(rand_num)

输出:

6
生成真随机数

生成真随机数需要使用一些物理设备。Python中有一个第三方库pycryptodome,可以用来生成真随机数。下面是一个例子,使用该库生成一个8字节的真随机数:

from Crypto.Random import get_random_bytes

rand_num = get_random_bytes(8)
print(rand_num)

输出:

b'\x99%\xd3\xf3\x96\xde\xcd\xad'
随机数种子

对于给定的随机数生成器,生成的随机数是固定的。为了避免这种情况,我们可以使用随机数种子,这样每次生成的随机数就不同了。

使用随机数种子的语法如下:

import random

random.seed(seed_value)
rand_num = random.randint(start, end)

其中,seed_value 是随机数种子,startend 分别是随机数的范围。

下面是一个例子,使用随机数种子生成1到10之间的随机整数:

import random

random.seed(1)
rand_num = random.randint(1, 10)
print(rand_num)

random.seed(2)
rand_num = random.randint(1, 10)
print(rand_num)

random.seed(1)
rand_num = random.randint(1, 10)
print(rand_num)

输出:

3
1
3

可以看到,当使用相同的随机数种子时,生成的随机数也是相同的。

随机数序列

除了生成单个随机数以外,我们还可以使用random模块的其他函数生成随机数序列,例如:

import random

a = [1, 2, 3, 4, 5]
random.shuffle(a)
print(a)

rand_nums = random.sample(range(1, 100), 5)
print(rand_nums)

其中,random.shuffle()函数可以打乱一个列表中元素的顺序,而random.sample()函数可以从指定范围内选取指定数量的不重复的随机数。

总结

在Python中,使用random模块可以很容易地生成随机数。通过设置随机数种子,可以控制生成的随机数。除了生成单个随机数以外,还可以使用其他函数生成随机数序列。