在python 2.7中使用if语句的语法错误
我在Python代码中的“Syntax Error:invalid syntax”消息中遇到问题,这些代码一直在将目标帖子移到我身上。在python 2.7中使用if语句的语法错误
这里的示例代码:
another_answer = int(raw_input("> ")
if another_answer == 1:
print "The pirate's body slowly goes limp and he whispers to you......."
print "Good luck my son. You might need this."
get_gold()
print: "Do you want to continue to the next room?"
当我在shell我得到下面这条命令:
File "ex36.py", line 179
if another_answer == 1:
^
SyntaxError: invalid syntax
我发现这个奇怪的,除去冒号后我得到一个错误信息在下一行:
File "ex36.py", line 180
print "The pirate's body slowly goes limp and he slowly whispers to you......."
^
SyntaxError: invalid syntax
我在上面找到的*中心的类似问题间距和缩进,但我已经看过,一切似乎都很好。
前行缺少一个右括号:
another_answer = int(raw_input("> ")
# ^ ^ ^^
# \ \--//
# \-----------?
Python允许用括号括起来的时候表达过的物理线路,所以当你不关闭括号的Python继续寻找其余表达方式。当它到达:
时,表达式就不再有意义了,并引发了一个异常。
您在第一行缺少右括号。冒号只是第一个不可能成为实际函数参数一部分的字符。
你有两个问题,你必须解决这两个问题。
第一个是你缺少一个右括号:
another_answer = int(raw_input("> ")
这意味着Python的仍然在试图编译参数调用int
当它到达下一行。直到结肠,一切仍是合法的,因为你可以一直写这个:
another_answer = int(raw_input("> ")
if another_answer == 1
else '42')
但是,一旦你到达结肠,有可能出现在没有有效的表达,因此,这就是你得到的SyntaxError
。
一般情况下,当你在一个行,其中绝对没有错看起来得到SyntaxError
,看前行 - 通常这是一个缺少)
(或]
或}
)。
但是,如果你解决了这个问题,你将会遇到另一个问题。虽然你声称这:
Similar questions I've found on * center around improper spacing and indentation, but I've looked that over and everything seems to be well.
...一切绝对是不得好:
another_answer = int(raw_input("> ")
if another_answer == 1:
这if
声明缩进到another_answer
陈述的权利。这是违法的,并且会引起IndentationError
。您只能在Python中更改缩进级别以进入或退出由复合语句控制的块。
你也是你的代码有至少一个以上的错误:
print: "Do you want to continue to the next room?"
这将引发SyntaxError
。 print
不是像if
或def
这样的复合语句,所以它不需要冒号。
很容易发现您错过了第一行的右括号。
那么,这里有一个缩进错误; 'if'语句必须与'another_answer ='语句具有相同的缩进级别。但是还有_another_语法错误导致您无法看到该错误。 – abarnert 2014-09-21 03:08:36