Python:为什么我的代码有语法错误?

Python:为什么我的代码有语法错误?,python,except,Python,Except,嗨,伙计们,你们能告诉我为什么会出现这个错误吗: # Handle all the exceptions! #Setup actor = {"name": "John Cleese", "rank": "awesome"} def get_last_name(): try: return actor["last_name"] except KeyError: return "Cleese" #Test code get_last_nam

嗨,伙计们,你们能告诉我为什么会出现这个错误吗:

    # Handle all the exceptions!
#Setup
actor = {"name": "John Cleese", "rank": "awesome"}

def get_last_name():
    try:
        return actor["last_name"]
    except KeyError:
        return "Cleese"

#Test code
get_last_name()
print "All exceptions caught! Good job!"
print "The actor's last name is %s" % get_last_name()
回溯(最近一次呼叫最后一次):
文件“/base/data/home/apps/s~learnpythonjail/3.368780930138799213/main.py”,第77行,在execute_python中
exec(代码,{})
文件“”,第9行
除SyntaxError外:
^
SyntaxError:无效语法
我尝试了所有类型的错误捕获,但仍然产生语法错误


非常感谢你的帮助

我只是复制并粘贴了您的代码,没有收到任何错误,这意味着可能是布局错误。如果您使用的是选项卡,请尝试删除它们,并用4个空格替换它们。

我只是复制并粘贴了您的代码,没有出现错误,这意味着可能是布局错误。如果您正在使用制表符,请尝试将其删除,并用4个空格替换。

您正在混合制表符和空格。您的代码是:

Traceback (most recent call last):
  File "/base/data/home/apps/s~learnpythonjail/3.368780930138799213/main.py", line 77, in execute_python
    exec(code, {})
  File "<string>", line 9
    except SyntaxError:
         ^
SyntaxError: invalid syntax
其中,
―――表示选项卡,
·表示空格。我有意将选项卡表示为6个字符宽,因为4只是编辑器使用的惯例。使用制表符或空格进行缩进,但不要混合使用!PEP8提倡空间


在这种情况下,问题在于
try
的缩进与
的缩进不匹配,除非您混合了制表符和空格。您的代码是:

Traceback (most recent call last):
  File "/base/data/home/apps/s~learnpythonjail/3.368780930138799213/main.py", line 77, in execute_python
    exec(code, {})
  File "<string>", line 9
    except SyntaxError:
         ^
SyntaxError: invalid syntax
其中,
―――表示选项卡,
·表示空格。我有意将选项卡表示为6个字符宽,因为4只是编辑器使用的惯例。使用制表符或空格进行缩进,但不要混合使用!PEP8提倡空间


在这种情况下,问题在于
try
的缩进与
的缩进不匹配,除了

是否混合了制表符和空格?这不是由您发布的任何代码引起的。发布包含除SyntaxError:
之外的
的代码。前一行可能缺少括号或括号。@kindall:在我看来,这看起来像是
,除了语法错误:
行是他使用的任何教程工具的代码的一部分(“learnpythonjail”是提示性的),而不是OP写的东西。这要么是制表符和空格的混合,或者使用的字符为空,但不是制表符或空格。(例如,像一个不间断的空格)。你是在混合制表符和空格吗?这不是由你发布的任何代码引起的。发布包含除SyntaxError:
之外的
的代码。前一行可能缺少括号或括号。@kindall:在我看来,这看起来像是
,除了语法错误:
行是他使用的任何教程工具的代码的一部分(“learnpythonjail”是提示性的),而不是OP写的东西。这要么是制表符和空格的混合,或者使用的字符为空,但不是制表符或空格。(例如,像一个不间断的空格)。