Python 代码阅读(第 49 篇):限制一个数在指定范围内
Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码
本篇阅读的代码实现了将一个数限制在指定范围内的功能,如果这个数在另外两个数所指定的范围内,将保持自己的值,否则返回离这个数最近的值。
本篇阅读的代码片段来自于30-seconds-of-python。
clamp_number
复制代码
clamp_number
函数接收一个需要被限制的数num
,以及表示返回的两个数a
和b
,返回限制的结果。
区别于多次使用if
条件语句,该函数组合使用max
和min
函数求取限制的结果。
代码的逻辑是先求取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
的值。
版权声明: 本文为 InfoQ 作者【Felix】的原创文章。
原文链接:【http://xie.infoq.cn/article/fd3659b633b84ee9865f67464】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论