else & elif statements not working in Python
我是Python的新手,目前正在学习控制流命令,如
我按照"python的一个字节"这本书中的描述来做。如您所见,
1 2 3 4 5 6 7 8 | >> number=23 >> guess = input('Enter a number : ') >> if guess == number: >> print('Congratulations! You guessed it.') >> elif guess < number: **( It is giving me 'Invalid Syntax')** >> else: **( It is also giving me 'Invalid syntax')** |
为什么会这样?我在空闲和交互式Python中都遇到了这个问题。我希望语法正确。
看起来您在
1 2 3 4 5 6 | if guess == number: print('Congratulations! You guessed it.') elif guess < number: pass # Your code here else: pass # Your code here |
问题是,在EDCOX1 1或EDCOX1 0的条件下,您正在键入空白行。注意你得到的提示。如果它是
在idle和interactive python中,您输入了两个连续的CRLF,这使您脱离了if语句。这是闲置或交互式Python的问题。使用任何类型的编辑器都可以,只要确保缩进正确即可。
1 2 3 4 5 | if 1: pass <--- this line must be indented at the same level as the `pass` else: pass |
在您的代码中,解释器在缩进时完成
通常,尝试遵循样式指导原则,其中包括删除过多的空白。
请记住,默认情况下,输入的返回值将是字符串而不是整数。不能将字符串与布尔值(如<,>,=>,<=)进行比较(除非正在比较长度)。因此,您的代码应该如下所示:
1 2 3 4 5 6 7 8 | number = 23 guess = int(input('Enter a number: ')) # The var guess will be an integer if guess == number: print('Congratulations! You guessed it.') elif guess != number: print('Wrong Number') |
1 2 3 4 5 6 | if guess == number: print ("Good") elif guess == 2: print ("Bad") else: print ("Also bad") |
确保你的身份正确。语法正常。
即使"elif"块的标识与"if"块标识不匹配(第一个为制表符,第二个为空格,反之亦然),python也可以生成相同的"无效语法"错误。
除此之外,你的契约是错误的。代码不起作用。我知道你在使用python 3。某物。我使用的是python 2.7.3对于您试图完成的工作,实际有效的代码是这个。
1 2 3 4 5 6 7 8 | number = str(23) guess = input('Enter a number: ') if guess == number: print('Congratulations! You guessed it.') elif guess < number: print('Wrong Number') elif guess < number: print("Wrong Number') |
唯一不同的是,我会告诉python数字是一个字符串,用于代码工作。如果不是的话,会认为是一个整数。当有人运行代码时,他们输入的是字符串而不是整数。有很多方法可以改变这段代码,但这是我想要提供的简单的解决方案,如果不把23变成一个字符串,还有一种方法我想不出来。或者您可以"23"输入引号,或者在输入中使用int()函数。这将把他们输入的任何东西转换成一个整数。