Python 如何生成 X 到 Y 之间的随机整数?
random.randint(x, y) 生成含两端点的随机整数;random.randrange(x, y+1) 等效;secrets.randbelow 用于安全场景。本文给出各写法与区间开闭差异。
最常用:random.randint(x, y)——两端都包含,randint(1, 10) 可能返回 1 到 10 的任何整数。
三种写法对比
import random
random.randint(1, 10) # 1-10,含两端(最常用)
random.randrange(1, 11) # 同上,但遵循 range 左闭右开习惯,要 +1
random.choice(range(1, 11)) # 也能,但没必要
安全场景用 secrets
密码学相关(令牌、验证码)不要用 random:
import secrets
secrets.randbelow(10) + 1 # 1-10 的安全随机数
可复现的随机
测试里需要结果可复现:
random.seed(42)
random.randint(1, 100) # 每次运行结果相同
常见问题(FAQ)
Q:randint(0, 1) 是二选一吗? 是,等概率返回 0 或 1。
Q:要浮点随机数呢? random.uniform(x, y)。