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

我是一名新的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:'))

我可能忽略了一些非常简单的东西;然而,我自己还没能找到答案。

351765 次浏览

在python中“else if”拼写为“elif” 同样,你需要在elifelse后面加一个冒号

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

所以你的代码应该是:

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


function(input('input:'))

你是指elif吗?

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

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

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()

这里是你的函数的一个小重构(它不使用"else"或"elif"):

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

@ghostdog74: Python 3要求“打印”使用圆括号。

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

如你所见,else if应该改为elif, '2'后面应该有冒号,else语句后面应该有新行,并关闭print和括号之间的空格。