首页 > 解决方案 > 使用比较时如何简化长 if/elif 语句

问题描述

我试图简化这一点:

        if num < 9:
            y = 1
        elif num < 17:
            y = 2
        elif num < 25:
            y = 3
        elif num < 33:
            y = 4
        elif num < 41:
            y = 5
        elif num < 49:
            y = 6
        elif num < 57:
            y = 7
        else:
            y = 8

我还没有找到一种方法来做到这一点 - 有人可以帮助我吗?

标签: pythonif-statementsimplifysimplification

解决方案


我想出的唯一想法是创建一个以范围为键的字典。

ranges = {range(0,9):1,range(9,17):2,range(17,25):3,range(25,33):4,range(33,41):5,range(41,49):6,range(49,57):7}
number = 10
for k,v in ranges.items():
    if number in k:
        print(v)

在这种情况下,输出是2


推荐阅读