2014-03-30 56 views
-3

我覺得我如果statments太長,我怎麼會縮短他們失望?:較短的if語句

userI = int(input("")) 

if userI == 1: 
    #code 
elif userI == 2: 
    #code 
elif userI == 3: 
    #code 
#ETC 
+0

您正在使用的,而不是比較運算賦值運算符。 – thefourtheye

+0

對所有分支執行相同的代碼嗎? – thefourtheye

+0

很難說沒有看到執行什麼代碼,但是你可能會想用字典代替。 –

回答

0

因爲Python沒有switch語句中有沒有更好的方式來表示這一點。 如果沒有看到代碼的其餘部分,很難說,但你可能會使它看起來更乾淨。

2

您似乎在問Python是否具有與case語句等價的功能。答案是不。你可以閱讀關於爲什麼在PEP 3103

1

如果每個分支的代碼能夠被重構到一個單一的功能,你可以建一個表:

def func_1(): 
    pass 

def func_2(): 
    pass 

def func_3(): 
    pass 

def undefined_input(): 
    pass 

table = { '1': func_1, '2': func_2, '3': func_3 } 

userI = int(input("")) 
table.get(userI, undefined_input)()