我在 Windows 7 Professional 64 位计算机上的 Python 版本 3.3 64 位的 Python Interactive Shell IDLE 中遇到了缩进问题。这是我试图编写的简单条件流程序背后的想法:
if spam == 1:
print('Hello')
elif spam == 2:
print('Howdy')
else:
print('Greetings!")
交互式 shell 不会让“elif”返回到与 if 语句相同的块(不确定我是否正确描述),所以它最终看起来像这样:
if spam == 1:
print('Hello')
elif spam == 2:
SyntaxError: invalid syntax
if spam == 1:
print('Hello')
elif spam == 2:
SyntaxError: unindent does not match any outer indentation level
>>>
交互式 shell 的提示符
>>>
确实在视觉上占用了空间,但它不被视为代码。与包含提示的行具有相同缩进级别的代码应从提示开始的地方开始,而不是从代码开始的地方开始。
>>> if 1==1:
pass
else:
pass
>>>
如果从系统终端(例如 cmd、PowerShell 等)启动解释器,则块中的后续行会出现不同的提示符
...
,从而提供更清晰的代码表示:
>>> if 1==1:
... pass
... else:
... pass
...
>>>