Looking for a good replacement for elif & if , like switch case
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Replacements for switch statement in python?
采用这种方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 | def getIndex(index): if((index) < 10): return 5 elif(index < 100): return 4 elif(index < 1000): return 3 elif(index < 10000): return 2 elif(index < 100000): return 1 elif(index < 1000000): return 0 |
我想用开关盒样式,但是Python不支持开关盒。
有替代品吗?
经典的pythonic方法是使用字典,其中键是您的测试,值是反映您打算做什么的可调用函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | def do_a(): print"did a" self do_b(): print" did b" #... etc opts = {1:do_a, 2:do_b} if value in opts: opts[value]() else: do_some_default() |
那么
在这个特殊的例子中,我只使用数学:
1 2 | def get_index(index): return 6 - int(round(math.log(index, 10))) |
您必须使用内置函数