間隔を暗黙的に定義する一連のエンドポイントを指定して、間隔に数値が含まれているかどうかを確認し、対応する (計算可能な方法で関連付けられていない) を返す関数をリファクタリングしています。現在作業を処理しているコードは次のとおりです。
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
これは IMO にとって非常に恐ろしいことであり、間隔と戻り値の両方がハードコードされているという点で欠けています。もちろん、任意のデータ構造の任意の使用が可能です。