randrange()
和 uniform()
是 Python 中用于生成随机数的函数,它们都属于 random
模块,但在生成随机数的类型和范围上有所不同。
根据需求选择合适的函数:
生成随机整数时,使用
randrange()
。生成随机浮点数时,使用
uniform()
。
以下是它们的区别和联系:
区别
1、所属模块
-
两者均属于
random
模块,使用前需要先导入该模块:import random
2、生成随机数的类型
-
randrange()
生成的是随机整数。 -
uniform()
生成的是随机浮点数。
3、生成随机数的范围
-
randrange()
的范围是[start, stop)
,即包含start
但不包含stop
。可以通过step
参数指定步长,控制随机数之间的间隔。 -
uniform()
的范围是[a, b]
,即包含a
和b
。生成的随机浮点数在a
和b
之间均匀分布。
相同部分
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 参数) | 不支持 |
适用场景 | 需要生成随机整数时 | 需要生成随机浮点数时 |