Invalid syntax on VERY SIMPLE Python if … else sta

2020-03-25 04:12发布

Can someone explain why I am getting an invalid syntax error from Python's interpretor while formulating this simple if...else statement? I don't add any tabs myself I simply type the text then press enter after typing. When I type an enter after "else:" I get the error. "Else" is highlighted by the interpreter. What's wrong?

Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:55:48)
[MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.

>>> if 3 > 0:
        print("3 greater than 0")
        else:

SyntaxError: invalid syntax
>>>

7条回答
别忘想泡老子
2楼-- · 2020-03-25 04:18

Python does not allow empty blocks, unlike many other languages (since it doesn't use braces to indicate a block). The pass keyword must be used any time you want to have an empty block (including in if/else statements and methods).

For example,

if 3 > 0:
    print('3 greater then 0')
else:
    pass

Or an empty method:

def doNothing():
    pass
查看更多
▲ chillily
3楼-- · 2020-03-25 04:23

Click to open image

The problem is indent only.

You are using IDLE. When you press enter after first print statement indent of else is same as print by default, which is not OK. You need to go to start of else sentence and press back once. Check in attached image what I mean.

查看更多
forever°为你锁心
4楼-- · 2020-03-25 04:28

That's because your else part is empty and also not properly indented with the if.

if 3 > 0:
    print "voila"
else:    
    pass

In python pass is equivalent to {} used in other languages like C.

查看更多
We Are One
5楼-- · 2020-03-25 04:28

The else block needs to be at the same indent level as the if:

if 3 > 0:
    print('3 greater then 0')
else:
    print('3 less than or equal to 0')
查看更多
贪生不怕死
6楼-- · 2020-03-25 04:41

it is a obvious mistake we do, when we press enter after the if statement it will come into that intendation,try by keeping the else statement as straight with the if statement.it is a common typographical error

查看更多
冷血范
7楼-- · 2020-03-25 04:42

The keyword else has to be indented with respect to the if statement respectively

e.g.

a = 2
if a == 2:
    print "a=%d", % a
else:
    print "mismatched"
查看更多
登录 后发表回答