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

Python中range()的最终索引为何不等于结束参数?

为什么Python中range(5)的for循环结束后i的值是4而不是5?

Python的for循环和你熟悉的C/Java风格计数器循环逻辑完全不同:

  • Python的for是迭代遍历循环,它会依次取出可迭代对象(这里是range(5)生成的序列)中的每一个元素,赋值给循环变量i,直到序列被耗尽。
  • range(5)生成的是从0开始、到但不包含5的整数序列:[0, 1, 2, 3, 4],所以循环过程中i会被依次赋值为这五个数,最后一次赋值的是4。
  • 整个循环过程中没有“让i递增到终止值触发退出”的步骤,循环结束后,i会保留最后一次被赋值的内容——也就是4,所以后续的print(i)会输出4。

如果是C风格的计数器循环,逻辑是先初始化计数器,再判断条件,满足就执行循环体,最后自增计数器,所以循环结束后计数器会等于终止值。但Python的for循环完全走的是迭代器逻辑,不存在这个“自增到终止值”的动作。

你可以把range(5)理解成直接给循环提供了要遍历的所有元素,循环只是逐个取用,不会额外修改循环变量。

内容的提问来源于stack exchange,提问作者Chason Young

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:10:51