Andrew

randrange()uniform() 是 Python 中用于生成随机数的函数,它们都属于 random 模块,但在生成随机数的类型和范围上有所不同。

根据需求选择合适的函数:

  • 生成随机整数时,使用 randrange()

  • 生成随机浮点数时,使用 uniform()

以下是它们的区别和联系:

区别

1、所属模块

  • 两者均属于 random 模块,使用前需要先导入该模块:import random

2、生成随机数的类型

  • randrange() 生成的是随机整数

  • uniform() 生成的是随机浮点数

3、生成随机数的范围

  • randrange() 的范围是 [start, stop),即包含 start 但不包含 stop。可以通过 step 参数指定步长,控制随机数之间的间隔。

  • uniform() 的范围是 [a, b],即包含 ab。生成的随机浮点数在 ab 之间均匀分布。


相同部分

1、同属 random 模块

  • 两者都用于生成随机数,且均依赖于 random 模块。

2、范围控制

  • 两者都允许指定生成随机数的范围。

3、随机性

  • 生成的随机数均为伪随机数,基于相同的随机数种子(seed)时,结果可重复。


示例对比

生成 1 到 10 之间的随机数

生成 1 到 10 之间的随机数,使用 randrange():

import random
num = random.randrange(1, 11)  # 生成 1 到 10 之间的随机整数
print(num)

生成 1 到 10 之间的随机数,使用 uniform():

import random
num = random.uniform(1.0, 10.0)  # 生成 1.0 到 10.0 之间的随机浮点数
print(num)
特性randrange()uniform()
生成类型随机整数随机浮点数
范围[start, stop)(左闭右开)[a, b](闭区间)
步长控制支持(通过 step 参数)不支持
适用场景需要生成随机整数时需要生成随机浮点数时