Python range() 的边界:为什么循环有时一次也不执行?

下面这段代码不会打印任何内容,也不会报错: for x in range(10, 7): print(x) 原因很简单:range(10, 7) 使用默认的正步长,起点已经超过终点,因此范围为空,循环体一次也不执行。 本文适合刚开始学习 Python 循环的读者,阅读约需 3 分钟。 先看懂 range() 的三个参数 range() 常见的写法有三种: list(range(4)) # [0, 1, 2, 3] list(range(2, 7)) # [2, 3, 4, 5, 6] list(range(2, 7, 2)) # [2, 4, 6] 完整形式是 range(start, stop, step): start:起点,省略时默认为 0。 stop:终点,不包含在范围内。 step:步长,省略时默认为 1。 range() 返回的是一个范围对象,并不是列表。这里使用 list(),只是为了直接观察其中的值。 对于正步长,每个值都必须满足 x < stop。因此,range(2, 7) 从 2 开始,每次增加 1,到 6 为止,不包含 7。 起点碰到或超过终点,会发生什么? 默认步长是 1,所以如果一开始就有 start >= stop,连第一个值都不符合条件: list(range(7, 7)) # [] list(range(10, 7)) # [] 空范围是正常结果,不是异常。 for 循环没有值可以遍历,就会直接跳过循环体,继续执行后面的代码: ...

2026年10月8日 · 2 分钟 · map[name:Jeanphilo]