我是一名新的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中if/else if的正确语法是elif。顺便说一下,如果你有很多if/else,你可以用字典
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()
自古以来,Python中if/else if的正确语法是elif。顺便说一下,如果你有很多if/else,你可以用字典
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()