else&elif语句在Python中不起作用

2024-04-16 20:45:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,目前正在学习控制流命令,如ifelse,等等

if语句工作正常,但是当我编写elseelif命令时,解释器会给出语法错误。我使用的是Python3.2.1,问题出现在它的本机解释器和IDLE中。

我按照书中的说明来做。如您所见,elifelse给出了无效语法

>> 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')**

为什么会这样?我在IDLE和交互式python中都遇到了问题。我希望语法正确。

enter image description here


Tags: 命令numberifis语法it解释器else
3条回答

看起来您在if语句的主体后面输入了一个空行。这向交互式编译器提示您已经完全使用了块,因此不需要任何elif/else块。尝试输入与此完全相同的代码,并且在每行之后只按enter一次

if guess == number:
    print('Congratulations! You guessed it.')
elif guess < number:
    pass # Your code here
else:
    pass # Your code here

问题是在{{CD1>}或^ {< CD2>}之前键入的空白行。注意你得到的提示。如果是>>>,那么Python需要一个新语句的开头。如果是...,那么它希望您继续前面的语句。

elifelse必须立即跟随if块的结尾,否则Python将假定该块在没有它们的情况下已关闭。

if 1:
    pass
             <--- this line must be indented at the same level as the `pass`
else:
    pass

在代码中,解释器在缩进时完成if块,因此elifelse与之无关。因此,它们被理解为独立的语句,这是没有意义的。


一般来说,尝试遵循style guidelines,这包括删除多余的空白。

相关问题 更多 >