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

Python中range()函数循环无输出的相关规则及原理咨询

Python中range()函数的运行规则:为什么range(11, -2)没有输出?

要搞懂这个问题,得先吃透Python里range()函数的核心运行逻辑:

  • range()的完整语法是range(start, stop, step),其中step(步长)默认值为1。
  • 生成序列的前提是:步长的方向必须和起始值到结束值的方向一致:
    • 当step为正数时,只有start < stop,才会生成从start开始、每次加step直到接近但不超过stop的序列;
    • 当step为负数时,只有start > stop,才会生成从start开始、每次减step的绝对值直到接近但不低于stop的序列;
    • 如果方向不匹配,或者start等于stop,range()直接返回空序列。

回到你的例子:

  • 初始代码里的range(11, -2)用了默认步长1(正数),但start=11明显大于stop=-2,方向完全相反,所以range()返回空序列,for循环遍历空序列自然没有任何输出。
  • 修复后的range(11, 0, -2)把步长设为-2(负数),此时start=11 > stop=0,方向匹配,所以会生成11,9,7,5,3,1这样的序列,循环就能正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 03:07:10