[python] 'else if'的正確語法是什麼?



Answers

你的意思是elif

Question

我是一位正在從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:'))

我可能錯過了一些非常簡單的事情; 但是,我一直無法自己找到答案。




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, e.g def adding():
elif answer == "s":
    subtracting() #This would lead to a define, e.g def adding():
else:
    print("Invalid selection!")

這使得它略微變窄,使得排序更容易。




自古以來, if/else if在Python中if/else if的正確語法是elif 。 順便說一下,如果你有很多if/else .eg,你可以使用字典

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



Links