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

Python中range负步长使用疑问:为何用(10,0,-1)而非(1,11,-1)

为什么Python逆序range不能写成range(1,11,-1)?

Python里的range函数核心逻辑很直白,不管步长是正还是负,它都会遵循「从起始值出发,每次加上步长,直到当前值“越过”结束值就停止迭代」的规则,具体判断条件分两种情况:

  • 步长为正:要求当前值 小于 结束值,一旦当前值 >= 结束值,停止
  • 步长为负:要求当前值 大于 结束值,一旦当前值 <= 结束值,停止

为什么range(1,11,-1)没用?

起始值是1,结束值是11,步长-1。一开始1就小于11,不满足步长为负时「当前值 > 结束值」的迭代前提,所以这个range直接是空序列,循环根本不会执行,自然打不出任何数字。

为什么range(10,0,-1)能正常工作?

起始值10,结束值0,步长-1:

  1. 第一次取10,10>0,满足条件,输出
  2. 10 + (-1) =9,9>0,满足,输出
  3. 重复直到得到1,1>0,输出
  4. 1 + (-1)=0,0不满足>0,停止迭代

刚好覆盖10到1的所有数字,实现逆序输出。

代码验证

# 无输出
for num in range(1, 11, -1):
    print(num)

# 输出10到1
for num in range(10, 0, -1):
    print(num)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 17:57:50