什么是“其他如果”正确的语法?
我是一个从2.6.4到3.1.1的新Python程序员。 一切都很好,直到我试图使用'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:'))
我可能错过了很简单的事情; 然而,我一直无法自己find答案。
在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:'))
你的意思是elif
?
def function(a): if a == '1': print ('1a') elif a == '2': print ('2a') else: print ('3a')
自古以来, if/else if
在Python中的正确语法是elif
。 顺便说一下,如果你有很多的if/else
.eg,你可以使用字典
d={"1":"1a","2":"2a"} if not a in d: print("3a") else: print (d[a])
对于msw,使用字典执行function的例子。
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需要“print”的括号。
它看起来像你在“else if”和“else”语句中丢失了一些冒号。
Python 3.x有一些变化,这意味着一些python2.7程序可能无法正常工作。
我知道这个答案可能会迟到,但它指出了一些事情。
Python 3.x的等价物else if
已经收缩到elif
。 这意味着所有else if
代码现在必须是elif
。
这里是一个例子:
print ("Hello! Type a letter. (a for adding, s for subtracting)") answer = input() if answer = "a": adding() #This would lead to a define, eg def adding(): elif answer = "b": subtracting() #This would lead to a define, eg def adding(): else: print ("Invalid selection!")
这使得它略微变窄,使分类更容易。