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

Python中缩进对for循环变量作用域的影响及代码疑问解析

问题解析:循环结束后打印item仅显示最后一个值的原因

问题描述

我在缩进块内两次打印item,它会按迭代格式输出item的各个值;但在无缩进的循环结束后打印item时,仅输出item的最后一个值(即代码中的3)。请问这是为什么?

示例代码

for item in (1,2,3):
  print(item)
  print(item)
print(item)

输出结果

1
1
2
2
3
3
3

(注:你提供的输出格式存在排版误差,实际正确输出应为上述内容)

原因解释

这是Python for循环的正常行为,核心逻辑如下:

  • 在循环执行过程中,item变量会被依次赋值为可迭代对象(1,2,3)中的每个元素,每一轮循环都会更新item的取值。
  • 缩进的print(item)属于循环体的一部分,每完成一次元素迭代,就会执行这两行打印代码,因此会依次输出每个元素两次。
  • 当循环完全结束后,item变量并不会被销毁,它会保留最后一次迭代时被赋予的值——也就是3,此时再执行无缩进的print(item),自然只会输出这个最终值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:56:05