What is the correct syntax for 'else if'?
我是一个新的Python程序员,正在从2.6.4跃升到3.1.1。在我尝试使用"else if"语句之前,一切都很顺利。解释器在"else if"中的"if"后面给了我一个语法错误,原因是我似乎不知道。
1 2 3 4 5 6 7 8 | def function(a): if a == '1': print ('1a') else if a == '2' print ('2a') else print ('3a') function(input('input:')) |
我可能错过了一些非常简单的事情;但是,我自己找不到答案。
在python中,"else if"拼写为"elif"。另外,在
简单问题的简单答案。我刚开始的时候也遇到了同样的问题(最近几周)。
所以你的代码应该是:
1 2 3 4 5 6 7 8 9 | def function(a): if a == '1': print('1a') elif a == '2': print('2a') else: print('3a') function(input('input:')) |
你是说
1 2 3 4 5 6 7 | def function(a): if a == '1': print ('1a') elif a == '2': print ('2a') else: print ('3a') |
自古以来,python中
1 2 3 | d={"1":"1a","2":"2a"} if not a in d: print("3a") else: print (d[a]) |
对于MSW,使用字典执行函数的示例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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"):
1 2 3 4 | def function(a): if a not in (1, 2): a = 3 print(str(a) +"a") |
@ghostdog74:python 3需要括号来表示"print"。
1 2 3 4 5 6 7 | def function(a): if a == '1': print ('1a') elif a == '2': print ('2a') else: print ('3a') |
应更正为:
1 2 3 4 5 6 7 | def function(a): if a == '1': print('1a') elif a == '2': print('2a') else: print('3a') |
如您所见,否则if应该改为elif,在'2'后应该有冒号,否则,在else语句后应该有一行新行,并关闭打印和括号之间的空格。