当我从.py文件中尝试此代码时,此代码有效,但在命令行解释器和空闲时失败。
>>> try:
... fsock = open("/bla")
... except IOError:
... print "Caught"
... print "continue"
File "<stdin>", line 5
print "continue"
^
SyntaxError: invalid syntax
我正在使用python 2.6
答案 0 :(得分:5)
使用Python 3,print
是一个函数,而不是一个语句,因此如果您使用的是Python 3,则需要围绕参数使用括号,如print("continue")
中所示。
>>> try:
... fsock = open("/bla")
... except IOError:
... print "Caught"
...
(some output shows here)
>>> print "continue"
答案 1 :(得分:4)
您需要留空一行以关闭except
块。 ...
表示它仍在尝试将代码放入该块中,即使您喜欢它。这只是交互式解释器的一个怪癖。
答案 2 :(得分:2)
在解释器中尝试这个:
try:
fsock = open("/bla")
except IOError:
print "Caught"
print "continue"
重要的是缩进后的空行。我正在使用python 2.6解释器,它会抛出与你相同的语法错误。
这是因为解释器需要用空行分隔的单个块。另外,空白行(两个新的行字符)表示块的结束,并且解释器应该执行它。