使用 Python 将数字限制在一个范围内

Vaibhav Vaibhav 2022年5月17日
使用 Python 将数字限制在一个范围内

钳位是指将一个值限制在一个范围内。当值超出范围时,将其更改为可能的最大值,如果值超出范围,则将其更改为可能的最小值。

在本文中,我们将学习如何使用 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。如果输入值大于最大可能值,则最大可能值将位于列表中间。

如果输入值小于最小可能值,则最小可能值将位于列表的中间。而且,如果输入值在范围内,它将位于列表的中间。

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

LinkedIn GitHub