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

Python嵌套循环中j值初始为何出现两次打印?

Python嵌套循环i=0时j打印两次的原因分析

核心原因1:内层循环的迭代范围包含两个元素

这是最常见的正常情况,比如你的代码结构类似:

for i in range(2):
    print(f"i:{i}")
    # 内层range(2)会生成0、1两个值,所以j会被打印两次
    for j in range(2):
        print(f"j:{j}")

当外层循环i=0时,内层循环会遍历range(2)的所有元素(0和1),自然会输出两次j的值,这完全符合Python循环的执行逻辑,并非异常。

核心原因2:代码缩进错误导致重复执行

如果代码缩进出现问题,比如不小心把打印j的语句写在了内层循环外,或者重复写了打印逻辑:

for i in range(2):
    print(f"i:{i}")
    for j in range(1):
        print(f"j:{j}")
    # 这里缩进错误,属于外层循环的执行语句,会额外打印一次j的最后值
    print(f"j:{j}")

这种情况下,i=0时,内层循环打印一次j:0,外层循环的额外print又会打印一次j:0,看起来像是j被输出了两次,本质是缩进错误导致的重复执行。

其他少见情况

  • 若使用while循环作为内层循环,终止条件设置错误(比如j <=1而不是j <1),会导致循环执行两次;
  • 代码中存在其他隐性逻辑(比如修改了循环变量j的值),但你已确认无额外代码,这种概率极低。

建议先检查内层循环的迭代对象(比如range()的参数),再核对代码缩进是否符合预期,基本就能定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 02:24:53