Python生成随机数_python生成随机数并判断奇偶
生成一个Python随机数
6 分钟阅读
Python有一个内置的随机模块来实现此目的。它公开了几个方法,如randrange(),randint(),random(),seed(),uniform()等。您可以调用这些函数中的任何一个来生成 Python 随机数。
通常,随机数是一个整数,但您也可以生成随机浮点数。但是,您首先需要了解程序员的上下文,然后选择要使用的正确函数。
初学者的 Python 随机数教程
Python随机数生成器
Python 随机数生成器是一个产生伪随机数的确定性系统。它使用Mersenne Twister算法,可以生成随机数列表。
确定性算法始终为相同的输入返回相同的结果。
它是迄今为止在各种编程语言中实现的最成功的PRNG技术。
伪随机数在统计上是随机的,但具有定义的起点,并且可能会重复。
现在让我们看看一些生成随机整数和浮点数的真实示例。
Randrange() 生成一个随机数
randrange() 函数可用于 Python 随机模块。它使您从给定的值范围生成一个随机数。
此函数具有以下三种变体:
语法
# randrange() with all three arguments
random.randrange(begin, end, step counter)
使用这种形式的 randrange() 时,您必须传递开始、停止和步长值。
# randrange() with first two arguments
random.randrange(begin, end)
使用此表单,您可以提供开始和停止,默认值 (=1) 用作计步器。
# randrange() with a single argument
random.randrange(end)
只需传递范围的终结点。起点考虑值 (=0),计步器考虑默认值 (=1)。
另外,请注意,在生成随机数时,结束/停止值被排除在外。此函数在以下情况下会产生 ValueError 异常:
- 如果您已将浮动范围用于开始/停止/步骤。
- 或者,如果起始值大于停止值。
现在让我们看看几个例子。
示例-1:生成介于 0 和 100 之间的随机数
import random as rand
# Generate random number between 0 to 100
# Pass all three arguments in randrange()
print("First Random Number: ", rand.randrange(0, 100, 1))
# Pass first two arguments in randrange()
print("Second Random Number: ", rand.randrange(0, 100)) # Default step = 1
# Or, you can only pass the start argument
print("Third Random Number: ", rand.randrange(100)) # Default start = 0, step = 1
输出为:
First Random Number: 3
Second Random Number: 36
Third Random Number: 60
示例-2:生成介于 1 和 99 之间的随机数
import random as rand
# Generate random number between 1 to 99
# Pass all three arguments in randrange()
print("First Random Number: ", rand.randrange(1, 99, 1))
# Pass first two arguments in randrange()
print("Second Random Number: ", rand.randrange(1, 99)) # Default step = 1
结果是:
First Random Number: 18
Second Random Number: 77
Randint() 表示包含范围
randint() 函数有点类似于 randrange()。它也从范围中生成一个随机整数。但是,它略有不同:
- Randint() 有两个必需的参数:start 和 stop
- 它有一个包含范围,即可以返回两个端点作为随机输出。
语法
# random module's randint() function
random.randint(start, stop)
此函数在生成随机输出时考虑开始值和结束值。
示例:Randint() 与 Seed() 演示打印随机数
import random as rand
# Generate random number using randint()
# Simple randint() example
print("Generate First Random Number: ", rand.randint(10, 100))
# randint() along with seed()
rand.seed(10)
print("Generate Second Random Number: ", rand.randint(10, 100))
rand.seed(10)
print("Repeat Second Random Number: ", rand.randint(10, 100))
结果如下:
Generate First Random Number: 14
Generate Second Random Number: 83
Repeat Second Random Number: 83
random() 生成随机浮点数
它是Python随机模块最基本的功能之一。它计算一个介于 0 和 1 之间的随机浮点数。
此函数具有以下语法:
语法
# random() function to generate a float number
random.random()
示例:Python 随机生成浮点数
import random as rand
# Generate random number between 0 and 1
# Generate first random number
print("First Random Number: ", rand.random())
# Generate second random number
print("Second Random Number: ", rand.random())
以下是执行后的输出:
First Random Number: 0.6448613829842063
Second Random Number: 0.9482605596764027
Seed() 重复随机数
seed() 方法允许保留 random() 函数的状态。这意味着一旦你设置了一个种子值并调用random()。然后,Python 将给定的种子映射到此操作的输出。
因此,每当您调用具有相同值的 seed() 时,后续的 random() 都会返回相同的随机数。
语法
# random seed() function
random.seed([seed value])
种子是可选字段。其默认值为 None,表示使用系统时间进行随机操作。
示例:如何将 Seed() 与 random() 一起使用
import random as rand
# Generate random number using seed()
# Using seed() w/o any argument
rand.seed()
print("Generate First Random Number: ", rand.random())
rand.seed()
print("Generate Second Random Number: ", rand.random())
# Using seed() with an argument
rand.seed(5)
print("Generate Third Random Number: ", rand.random())
rand.seed(5)
print("Repeat Third Random Number: ", rand.random())
以下是执行结果:
Generate First Random Number: 0.6534144429163206
Generate Second Random Number: 0.4590722400270483
Generate Third Random Number: 0.6229016948897019
Repeat Third Random Number: 0.6229016948897019
请注意,您甚至可以将 seed() 与其他 Python 随机函数(如 randint() 或 randrange() 配对。
Uniform() 生成随机浮点数
uniform() 函数从给定范围内计算一个随机浮点数。指定范围需要两个参数。
第一个参数包含随机处理。
语法
# random uniform() function
random.uniform(start, stop)
此函数提供满足开始 <= r <停止的随机结果 (r)。另外,请注意,启动和停止参数都是强制性的。
示例:使用 uniform() 的 Python 随机数
import random as rand
# Generate random float number using uniform()
# Simple randint() example
print("Generate First Random Float Number: ", rand.uniform(10, 100))
print("Generate Second Random Float Number: ", rand.uniform(10, 100))
执行后的结果为:
Generate First Random Float Number: 20.316562022174068
Generate Second Random Float Number: 27.244409254588806