📜  如何在 python 中使用随机数(1)

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

如何在 Python 中使用随机数

在编写 Python 代码时,我们经常需要使用随机数。Python 中的 random 模块可以用来生成伪随机数,下面我们来介绍一些使用随机数的基本方法。

生成随机整数

使用 randint(a, b) 函数来生成一个指定范围内的整数,范围包括 ab

import random

# 生成 1 到 10 的随机整数
random_int = random.randint(1, 10)
print(random_int)

以上代码中,random_int 将会被赋值为 1 到 10 之间的整数。

生成随机浮点数

使用 uniform(a, b) 函数来生成一个指定范围内的浮点数,范围包括 ab。注意,这个函数和 randint(a, b) 不同,它生成的是浮点数,而不是整数。

import random

# 生成 0 到 1 之间的随机浮点数
random_float = random.uniform(0, 1)
print(random_float)

以上代码中,random_float 将会被赋值为 0 到 1 之间的随机浮点数。

从列表中随机选择

使用 choice(seq) 函数来从一个非空序列中随机选择一个元素。

import random

# 从一个列表中随机选择一个数
numbers = [1, 2, 3, 4, 5, 6]
random_number = random.choice(numbers)
print(random_number)

以上代码中,random_number 将会被赋值为 numbers 中的一个随机元素。

打乱列表顺序

使用 shuffle(lst) 函数来随机打乱一个列表中元素的顺序。

import random

# 打乱一个列表中元素的顺序
numbers = [1, 2, 3, 4, 5, 6]
random.shuffle(numbers)
print(numbers)

以上代码中,numbers 列表中的元素将会被随机打乱顺序。

在程序执行时设置随机数种子

使用 seed(a=None) 函数来设置随机数种子。如果调用时没有传入参数,则使用系统当前时间的值作为种子;否则,将传入的参数作为种子。相同的种子会产生相同的随机数序列。

import random

# 设置随机数种子,使得每次运行时产生的随机数序列一样
random.seed(1234)

# 生成 1 到 10 的随机整数
random_int = random.randint(1, 10)
print(random_int)

# 生成 0 到 1 之间的随机浮点数
random_float = random.uniform(0, 1)
print(random_float)

# 从一个列表中随机选择一个数
numbers = [1, 2, 3, 4, 5, 6]
random_number = random.choice(numbers)
print(random_number)

# 打乱一个列表中元素的顺序
random.shuffle(numbers)
print(numbers)

以上代码中,我们先使用 seed(1234) 来设置随机数种子,使得每次运行时产生的随机数序列一致。然后我们使用了前面提到的各种方法来生成随机数或打乱列表元素的顺序。

随机数生成器

除了使用 random 模块提供的函数来生成随机数之外,我们还可以使用 random.Random() 类来构建一个随机数生成器。

import random

# 构建一个随机数生成器
generator = random.Random(1234)

# 生成 1 到 10 的随机整数
random_int = generator.randint(1, 10)
print(random_int)

# 生成 0 到 1 之间的随机浮点数
random_float = generator.uniform(0, 1)
print(random_float)

# 从一个列表中随机选择一个数
numbers = [1, 2, 3, 4, 5, 6]
random_number = generator.choice(numbers)
print(random_number)

# 打乱一个列表中元素的顺序
generator.shuffle(numbers)
print(numbers)

以上代码中,我们先使用 random.Random(1234) 来构建一个随机数生成器,然后使用这个生成器来生成随机数或打乱列表元素的顺序。注意,相同的生成器和相同的种子会产生相同的随机数序列。