我正在重构一个函数,给定一系列隐式定义间隔的端点,检查间隔中是否包含数字,然后返回相应的(与任何可计算的方式无关)。 现在处理工作的代码是:
if p <= 100:
return 0
elif p > 100 and p <= 300:
return 1
elif p > 300 and p <= 500:
return 2
elif p > 500 and p <= 800:
return 3
elif p > 800 and p <= 1000:
return 4
elif p > 1000:
return 5
这在我看来是相当可怕的,并且缺少间隔和返回值都是硬编码的。 当然,任何数据结构的使用都是可能的。
这里是文件:bisect
你可以试试看:
产生:
和Python中一样,有更好的方法可以做到这一点。
真是太可怕了。如果不要求没有硬编码,它应该是这样写的:
下面是创建查找函数的示例,包括线性查找和使用二进制搜索,但不满足硬编码要求,以及对这两个表的健全性检查:
相关问题 更多 >
编程相关推荐