乐趣区

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

Python 代码浏览合集介绍:为什么不举荐 Python 初学者间接看我的项目源码

本篇浏览的代码实现了将一个数限度在指定范畴内的性能,如果这个数在另外两个数所指定的范畴内,将放弃本人的值,否则返回离这个数最近的值。

本篇浏览的代码片段来自于 30-seconds-of-python。

clamp_number

def clamp_number(num,a,b):
  return max(min(num, max(a, b)), min(a, b))

# EXAMPLES
print(clamp_number(2, 3, 5)) # 3
print(clamp_number(1, -1, -5)) # -1

clamp_number函数接管一个须要被限度的数 num,以及示意返回的两个数ab,返回限度的后果。

区别于屡次应用 if 条件语句,该函数组合应用 maxmin函数求取限度的后果。

代码的逻辑是先求取 ab的最大值,再和 num 求取最小值。这个最小值再和 ab 之间的最小值比拟取最大值。

  1. max(a, b)这一步计算求出指定范畴的下限α
  2. min(num, α)这一步在指定数值和范畴的下限中求最小值。只有指定的数值超过范畴下限的时候,返回值为α,其余状况返回num
  3. min(a, b)这一步计算出指定返回的上限β
  4. 最初一步有两种状况,别离是 max(α, β)max(num, β)

    • num 超过范畴下限时,最初一步为 max(α, β)。此时返回范畴下限α,是整个取值范畴内最靠近num 的值。
    • num 没有超过范畴下限时,最初一步为 max(num, β)。此时如果num 在取值范畴内,就会大于范畴上限 β,返回num。如果num 小于范畴上限 β,则返回β,是整个取值范畴内最靠近num 的值。
退出移动版