使用 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