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

278 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:'))
Run Code Online (Sandbox Code Playgroud)

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

Lyn*_*ite 436

在python中"else if"拼写为"elif".
此外,你elif和之后需要一个冒号else.

简单回答一个简单的问题.当我第一次开始(在过去几周)时,我遇到了同样的问题.

所以你的代码应该是:

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

function(input('input:'))
Run Code Online (Sandbox Code Playgroud)

  • 不用担心,我们都要学习.我觉得奇怪的是,python将这种elphisise放在可读性上,然后继续使用elkif而不是它.我建议始终打开python API手册:http://docs.python.org/3.1/重要的链接是教程:http://docs.python.org/3.1/tutorial/index.html语言参考: http://docs.python.org/3.1/reference/index.html图书馆参考:http://docs.python.org/3.1/library/index.html (11认同)

Nic*_*sta 19

你的意思是elif


Tom*_*Tom 13

def function(a):
    if a == '1':
        print ('1a')
    elif a == '2':
        print ('2a')
    else:
        print ('3a')
Run Code Online (Sandbox Code Playgroud)


gho*_*g74 10

从古代开始,if/else ifPython中的正确语法就是elif.顺便说一句,如果你有很多if/else.eg ,你可以使用字典

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

对于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()
Run Code Online (Sandbox Code Playgroud)