Zahlen innerhalb eines Bereichs mit Python klammern

Vaibhav Vaibhav 12 April 2022
Zahlen innerhalb eines Bereichs mit Python klammern

Klemmen bezieht sich auf das Begrenzen eines Werts innerhalb eines Bereichs. Wenn ein Wert einen Bereich überschreitet, wird er auf den größtmöglichen Wert geändert, und wenn der Wert einem Bereich folgt, wird er auf den kleinstmöglichen Wert geändert.

In diesem Artikel erfahren Sie, wie Sie mit Python Zahlen innerhalb eines Bereichs festklemmen.

Klammern von Zahlen innerhalb eines Bereichs mit Python

Der folgende Python-Code zeigt, wie Zahlen innerhalb eines Bereichs eingeklemmt werden.

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))

Ausgabe:

1
34
10
1
0

Die obige Stub-Funktion gibt den Eingabewert innerhalb des Bereichs zurück. Beachten Sie, wie die Funktionen min() und max() für die Implementierung verwendet wurden.

Eine kreativere Art, die obige Stub-Funktion zu schreiben, ist die Verwendung einer Liste und einer Sortieroperation. Der folgende Python-Code veranschaulicht dies.

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))

Ausgabe:

1
34
10
1
0

Der perfekte oder geklemmte Wert liegt immer in der Mitte der Liste oder beim Index 1. Falls der Eingabewert größer als der größtmögliche Wert ist, kommt der größtmögliche Wert in die Mitte der Liste.

Ist der Eingabewert kleiner als der kleinstmögliche Wert, steht der kleinstmögliche Wert in der Mitte der Liste. Und wenn der Eingabewert innerhalb des Bereichs liegt, liegt er in der Mitte der Liste.

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.