2024-10-03 04:29:44 发布
网友
当我从一个.py文件中尝试时,这段代码可以工作,但是在命令行解释器中失败并且空闲。
>>> try: ... fsock = open("/bla") ... except IOError: ... print "Caught" ... print "continue" File "<stdin>", line 5 print "continue" ^ SyntaxError: invalid syntax
我正在使用Python2.6
对于Python 3,print是一个函数,而不是一个语句,因此如果使用python3,则需要在参数周围加上括号,如print("continue")。
print
print("continue")
然而,插入符号指向的位置比Python3更早,因此必须使用Python2.x。在这种情况下,错误是因为您正在交互式解释器中输入这个,它需要一点“帮助”来找出您试图告诉它的内容。在前一个块之后输入一个空行,以便它能够正确地破译缩进,如下所示:
>>> try: ... fsock = open("/bla") ... except IOError: ... print "Caught" ... (some output shows here) >>> print "continue"
您需要留下一个空行来关闭except块。...表示它仍在尝试将代码放入该块,即使您删除了它。这只是交互式翻译的一个怪癖。
except
...
在解释器中试试这个:
try: fsock = open("/bla") except IOError: print "Caught" print "continue"
这里重要的是缩进后的空行。我使用的是Python2.6解释器,它抛出的语法错误与您相同。
这是因为解释器需要用空行分隔的单个块。另外,空白行(两个新行字符)指示块的结束,并且解释器应该执行它。
对于Python 3,
print
是一个函数,而不是一个语句,因此如果使用python3,则需要在参数周围加上括号,如print("continue")
。然而,插入符号指向的位置比Python3更早,因此必须使用Python2.x。在这种情况下,错误是因为您正在交互式解释器中输入这个,它需要一点“帮助”来找出您试图告诉它的内容。在前一个块之后输入一个空行,以便它能够正确地破译缩进,如下所示:
您需要留下一个空行来关闭
except
块。...
表示它仍在尝试将代码放入该块,即使您删除了它。这只是交互式翻译的一个怪癖。在解释器中试试这个:
这里重要的是缩进后的空行。我使用的是Python2.6解释器,它抛出的语法错误与您相同。
这是因为解释器需要用空行分隔的单个块。另外,空白行(两个新行字符)指示块的结束,并且解释器应该执行它。
相关问题 更多 >
编程相关推荐