如果声明更短

时间:2014-03-30 19:10:14

标签: python if-statement

我认为我的if语句太长了,我怎么能缩短它们?:

userI = int(input(""))

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

3 个答案:

答案 0 :(得分:2)

您似乎在问Python是否具有等效的case语句。答案是不。您可以在PEP 3103中了解原因。

答案 1 :(得分: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)()

答案 2 :(得分:0)

由于Python没有switch语句,因此没有更好的方法来表示这一点。 没有看到你的其他代码就很难说,但你可能会让它看起来更干净。