'else if'的正确语法是什么?

时间:2010-03-07 04:17:48

标签: python python-3.x

我是一名新的Python程序员,正在从2.6.4跃升到3.1.1。在我尝试使用'else if'语句之前,一切都很顺利。解释器在'else if'中的'if'之后给出了一个语法错误,原因我似乎无法理解。

def function(a):
    if a == '1':
        print ('1a')
    else if a == '2'
        print ('2a')
    else print ('3a')

function(input('input:'))

我可能错过了一些非常简单的事情;但是,我一直无法找到答案。

6 个答案:

答案 0 :(得分:419)

在python中“else if”拼写为“elif”。
此外,您需要在elifelse之后添加冒号。

简单回答一个简单的问题。当我刚开始的时候(最近几周),我遇到了同样的问题。

所以你的代码应该是:

def function(a):
    if a == '1':
        print('1a')
    elif a == '2':
        print('2a')
    else:
        print('3a')

function(input('input:'))

答案 1 :(得分:19)

您的意思是elif吗?

答案 2 :(得分:13)

def function(a):
    if a == '1':
        print ('1a')
    elif a == '2':
        print ('2a')
    else:
        print ('3a')

答案 3 :(得分:10)

自古以来,Python中if/else if的正确语法为elif。顺便说一句,如果你有很多if/else,你可以使用字典。例如

d={"1":"1a","2":"2a"}
if not a in d: print("3a")
else: print (d[a])

对于msw,使用字典执行函数的示例。

def print_one(arg=None):
    print "one"

def print_two(num):
    print "two %s" % num

execfunctions = { 1 : (print_one, ['**arg'] ) , 2 : (print_two , ['**arg'] )}
try:
    execfunctions[1][0]()
except KeyError,e:
    print "Invalid option: ",e

try:
    execfunctions[2][0]("test")
except KeyError,e:
    print "Invalid option: ",e
else:
    sys.exit()

答案 4 :(得分:4)

这是你的函数的一点重构(它不使用“else”或“elif”):

def function(a):
    if a not in (1, 2):
        a = 3
    print(str(a) + "a")

@ ghostdog74:Python 3需要括号“print”。

答案 5 :(得分:2)

def function(a):
    if a == '1':
        print ('1a')
    else if a == '2'
        print ('2a')
    else print ('3a')

应更正为:

def function(a):
    if a == '1':
        print('1a')
    elif a == '2':
        print('2a')
    else:
        print('3a')

如您所见,否则,如果应将其更改为elif,则应在'2'之后加上冒号,否则,在else语句之后应换行,并关闭print和括号之间的空间。