使用 Python 将数字限制在一个范围内
Vaibhav Vaibhav
2022年5月17日
钳位是指将一个值限制在一个范围内。当值超出范围时,将其更改为可能的最大值,如果值超出范围,则将其更改为可能的最小值。
在本文中,我们将学习如何使用 Python 将数字限制在一个范围内。
使用 Python 将数字限制在一个范围内
以下 Python 代码描述了如何将数字限制在一个范围内。
def clamp(n, smallest, largest):
return max(smallest, min(n, largest))
print(clamp(1.000001, 0, 1))
print(clamp(34.2, 0, 34))
print(clamp(45, 0, 10))
print(clamp(1, 0, 1))
print(clamp(-100, 0, 100))
输出:
1
34
10
1
0
上面的存根函数返回范围内的输入值。注意 min()
和 max()
函数是如何用于实现的。
编写上述存根函数的一种更有创意的方法是使用列表和排序操作。下面的 Python 代码描述了这一点。
def clamp(n, smallest, largest):
return sorted([smallest, n, largest])[1]
print(clamp(1.000001, 0, 1))
print(clamp(34.2, 0, 34))
print(clamp(45, 0, 10))
print(clamp(1, 0, 1))
print(clamp(-101, 0, 100))
输出:
1
34
10
1
0
完美值或钳制值将始终位于列表的中间或索引 1
。如果输入值大于最大可能值,则最大可能值将位于列表中间。
如果输入值小于最小可能值,则最小可能值将位于列表的中间。而且,如果输入值在范围内,它将位于列表的中间。
Author: Vaibhav Vaibhav