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

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


当前回答

你是说艾丽夫吗?

其他回答

在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:'))
def function(a):
    if a == '1':
        print ('1a')
    elif a == '2':
        print ('2a')
    else:
        print ('3a')
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和括号之间的空格。

你是说艾丽夫吗?

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

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

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