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

为何Python交互式shell中循环后执行print报语法错误,脚本运行却正常

报错原因

Python交互式REPL环境和.py脚本的代码块识别规则存在差异:

  • 在.py脚本中,解释器会根据全局缩进层级的变化自动判断代码块边界,当print语句的缩进回到和for关键字同级时,会被自动识别为循环外的独立代码,因此可以正常运行。
  • 在交互式REPL中,解释器无法预判你是否还要继续编写缩进块内的代码,所有缩进形式的代码块(循环、分支、函数定义等)都需要输入一个空行来显式告知解释器块已结束。你报错的场景中,写完total += i之后没有输入空行就直接写了同级的print(total),此时REPL仍然判定你处于for循环的缩进块编写阶段,无缩进的print语句不符合循环内的缩进规则,就会抛出语法错误。
交互式环境下的正确写法
>>> z = [ 2, 3, 4, 5, 6 ]
>>> total = 0
>>> for i in z:
...     total += i
...  # 此处输入空行,触发REPL执行当前for循环代码块
>>> print(total)
20

内容的提问来源于stack exchange,提问作者Jason T.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:57:00