You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Python中random.randint包含区间上限,range、循环、索引不包含?

规则差异原因

这两个是Python不同模块下的独立接口,参数规则没有联动,差异完全来自于各自的接口定义:

  • range(start, stop) 采用Python序列通用的左闭右开设计,stop 是截断阈值,迭代时仅返回小于stop的整数,因此range(0,5)只会生成0~4的数值,你对range的原有认知没有问题。
  • random.randint(a, b) 的定义为返回闭区间[a, b]内的整数,b 是允许被取到的上限,它本质是random.randrange(a, b+1)的简化写法,而randrange的参数规则和range完全一致,这也是randint(0,5)能返回5的原因。

如果需要随机数的取值范围和range(0,5)对齐,可以使用以下两种写法:

import random
# 写法1:调整randint的上限值
num1 = random.randint(0,4)
# 写法2:使用参数规则和range完全一致的randrange
num2 = random.randrange(0,5)

内容的提问来源于stack exchange,提问作者Jason Buhain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 20:06:09