Python交互模式下for循环后代码报SyntaxError,单独运行却正常?
Python交互模式下for循环后语句报SyntaxError的原因
问题场景:
在FreeCodeCamp学习Python时,一段代码在他人设备上可正常运行,但在自己的Python交互模式中,for循环后的print('After', count)语句触发SyntaxError。不过单独输入该语句时,却能正常执行。
问题原因
Python交互模式对缩进代码块的结束有明确要求:当你写完for循环内的缩进代码后,必须按一次空回车,让解释器确认缩进块已经结束,之后才能输入无缩进的后续代码。
你当前的操作是写完循环内的两行代码后,直接输入了print('After', count),此时解释器仍认为你处于for循环的缩进块中,而这条print语句没有遵循循环内的缩进规则,因此触发语法错误。
当你单独输入这条print语句时,解释器处于顶层无缩进的上下文,自然能正常执行。
正确的交互输入示例
>>> count = 0 >>> print('before', count) before 0 >>> for thing in [1, 2, 3, 4, 5, 6]: ... count = count + 1 ... print(count, thing) ... # 此处按空回车结束循环块 1 1 2 2 3 3 4 4 5 5 6 6 >>> print('After', count) After 6
内容的提问来源于stack exchange,提问作者anna3176
相关产品推荐
相关产品推荐

