当前位置: 首页 > 后端技术 > Python

Python代码阅读(第49篇):限制一个数在指定范围内

时间:2023-03-26 12:53:00 Python

Python代码阅读(第49章):将一个数限制在指定范围内如果该数在另外两个数指定的范围内,则保留自己的值,否则返回最接近该数的值。本文阅读的代码片段来自30-seconds-of-python。clamp_numberdefclamp_number(num,a,b):返回max(min(num,max(a,b)),min(a,b))#EXAMPLESprint(clamp_number(2,3,5))#3print(clamp_number(1,-1,-5))#-1clamp_number函数接收一个需要钳位的数num,和代表return的两个数a和b,返回钳位的结果。与多次使用if条件语句不同的是,该函数结合了max和min函数来获取limit的结果。代码的逻辑是先求a和b的最大值,再用num求最小值。然后将该最小值与a和b之间的最小值进行比较以获得最大值。max(a,b)这一步计算指定范围的上限α。min(num,α)这一步在指定值和范围的上限中找到最小值。只有当指定值超过范围上限时,返回值为α,否则返回num。min(a,b)此步骤计算指定收益的下限β。最后一步有两种情况,分别是max(α,β)和max(num,β)。当num超过范围上限时,最后一步为max(α,β)。此时返回范围的上限α为整个取值范围内最接近num的值。当num不超过范围上限时,最后一步为max(num,β)。此时如果num在取值范围内,就会大于范围的下限β,返回num。如果num小于范围β的下限,则返回整个取值范围内最接近num的值β。