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

嵌套for循环迭代逻辑困惑:输入3为何输出0 0 1而非预期结果?

问题解答

为什么i=2时输出0和1而非1和2?

你的问题核心是对Python range() 函数的行为理解有误:

  • Python中range(x)生成的是从0开始、到x-1结束的整数序列,序列里不包含x本身。比如range(2)会生成[0, 1],而不是[1, 2]。

我们一步步走输入3时的代码执行流程:

  1. 外层循环for i in range(3),i依次取0、1、2
  2. 当i=0:内层range(0)是空序列,循环不执行,无输出
  3. 当i=1:内层range(1)生成[0],j取0,输出0
  4. 当i=2:内层range(2)生成[0, 1],j依次取0、1,输出0和1

所以最终输出是0 0 1,和你实际看到的结果一致。

嵌套for循环基础知识点

  • 嵌套循环是指一个循环内部包含另一个循环,外层循环每完成一次迭代,内层循环会完整执行所有迭代步骤
  • 内层循环的迭代次数和逻辑,通常由外层循环当前的变量值决定(比如你的代码里,内层range(i)的长度完全由外层的i控制)
  • 执行顺序:先执行外层循环的第一个变量值,接着把内层循环从头到尾跑一遍;再切换到外层循环的第二个变量值,内层循环再完整跑一遍,以此类推

如何得到你预期的0、1、2?

如果想要输入3时输出0、1、2,不需要嵌套循环,直接遍历range(num)即可:

num = int(input("Enter number"))
for j in range(num):
    print(j)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 09:05:03