Elif语法错误python

Elif语法错误python,python,python-2.7,Python,Python 2.7,基本上,函数travels应该包含一个字符串答案和两个其他变量,这两个变量我还没有得到,它们决定了一个人旅行的方向。但是,当我运行此命令时,会得到以下响应: def travels(answer, need, location): #travel north if answer == "north": return "you travel north" #travel south elif answer == "south": return "yo

基本上,函数travels应该包含一个字符串答案和两个其他变量,这两个变量我还没有得到,它们决定了一个人旅行的方向。但是,当我运行此命令时,会得到以下响应:

def travels(answer, need, location):
#travel north
    if answer == "north":
        return "you travel north"
#travel south
    elif answer == "south":
        return "you travel south"
#travel east
    elif answer == "east":
        return "You travel east"
#travel west
    elif answer == "west":
        return "You travel west"
1此语法错误在哪里? 2为什么航站楼在西elif上响应错误,而不是在南elif上响应错误


我读过的所有教程似乎都表明我对elif语句使用了正确的格式。我使用一系列elif语句的其他代码与此类似,不会给我带来问题。我知道这不是等号,而且我知道我应该在elif语句的末尾使用a:

在elif answer==west:之前有一个选项卡;这就是导致错误的原因。下一行还有一个选项卡。将它们替换为空格。您还应该将编辑器配置为自动将选项卡替换为空格。

您也可以执行以下操作:

Traceback (most recent call last):                                                                                                                                   
  File "cavernousJ.py", line 3, in <module>                                                                                                                          
    from travels import lookAround, findAnswer                                                                                                                       
  File "/home/cg/root/travels.py", line 13                                                                                                                           
    elif answer == "west":                                                                                                                                           
       ^                                                                                                                                                             
SyntaxError: invalid syntax  

除非您真的关心单词大小写不一致,否则注释需要标识region和def foanswer,need=None,location=None(如果希望在不使用其他参数的情况下调用)。对我来说很有用。您如何调用该方法?您是否包括其他两个参数的伪参数?那么这个类的其余部分呢?OP在elif answer==west:之前有一个选项卡。单击编辑并检查原始代码。我投票决定以排版错误告终。@cdarke,为什么总是有一个else是最好的?总是有一个else不是防御性的编程,这只是一个糟糕的规则。如果我每次看到别人的通行证都有一美元,我会。。。大概四美元左右。有时候,有一个其他的是好的。有时候不是。可能OP会通过检查返回值None来确定输入不良。在这种情况下,elifs甚至可以替换为ifs,因为每个案例都有一个返回值,尽管类似acushner的建议会更好。您可以建议将编辑器设置更改为用4个空格替换制表符?它后面的行中也有一个制表符。OP可能应该使用他们的编辑器/IDE自动用空格替换所有制表符。为此,只需执行if answer.lower in…:如果我想“North”怎么办?这将强制考虑else条件。@Two Bitalchest编辑
if answer.lower() in ('north', 'south', 'east', 'west'):
   return 'you travel ' + answer