[英]Syntax Error on elif statement in Python
I was having a bit of trouble with this code that I wrote in Python 2.7. 我在使用Python 2.7编写的代码时遇到了一些麻烦。 It's giving me a syntax error on the elif statement, but there's no explanation and I can't find any reasonable error in the code.
它给我一个关于elif语句的语法错误,但是没有解释,我在代码中找不到任何合理的错误。 (typeline is a method I defined.)
(字体是我定义的方法。)
num = randrange(-25,15)
""" Toxic """
if num >= -25 and num < -10:
responses = ["Ugh, nasty.", "That was absolutely disgusting.", "My stomach feels like it's going to explode.", "Pardon me if I puke."]
typeline(responses[randrange(0,4)], "jack")
return [num, "Jack ate a VERY TOXIC FRUIT and survived.", "Jack ate a VERY TOXIC FRUIT and died."]
""" Mildly poisonous """
elif num >= -10 and num < 0: """ SYNTAX ERROR HERE """
responses = ["Yuck", "It's kinda bitter.", "Tastes like an unripe banana.", "It's not so bad."]
typeline(responses[randrange(0,4)], "jack")
return [num, "Jack ate a MILDLY TOXIC FRUIT and survived.", "Jack ate a MILDLY TOXIC FRUIT and died."]
""" Healthy """
else:
responses = ["Definitely not too bad", "It's almost kind of tasty!", "Should I make a jam out of this?", "This is my new favorite fruit."]
typeline(responses[randrange(0,4)], "jack")
return [num, "Jack ate a HEALTHY FRUIT and was rescued.", "Jack ate HEALTHY FRUIT and survived."]
The error: 错误:
File "<stdin>", line 9
elif num >= -10 and num < 0:
^
SyntaxError: invalid syntax
You have an unindented triple-quoted string literal right before the elif
: 在
elif
之前你有一个未缩进的三引号字符串文字:
""" Mildly poisonous """
elif num >= -10 and num < 0:
"""..."""
string literals are not multi-line comments. """..."""
字符串文字不是多行注释。 They create strings, and only because you then ignore the string object produced does Python ignore the line. 他们创建字符串,只是因为你忽略了生成的字符串对象,Python忽略了这一行。 They are still part of the Python syntax;
它们仍然是Python语法的一部分; you can't ignore indentation rules when you use them.
使用它们时不能忽略缩进规则。
Use proper #
comments instead: 使用正确的
#
注释,而不是:
# Toxic
if num >= -25 and num < -10:
# ...
# Mildly poisonous
elif num >= -10 and num < 0:
# ...
# Healthy
else:
# ...
Since comments are ignored altogether by the syntax, it doesn't matter how they are indented. 由于语法完全忽略了注释,因此它们的缩进方式无关紧要。
If you must use """ ... """
triple-quoted strings as 'block comments', you must indent them to be part of the if
or elif
block they are placed in: 如果必须使用
""" ... """
三重引用的字符串作为“块注释”,则必须将它们缩进为它们所在的if
或elif
块的一部分:
""" Toxic """
if num >= -25 and num < -10:
# ...
""" Mildly poisonous """
elif num >= -10 and num < 0:
# ...
""" Healthy """
else:
# ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.