Fixer les nombres dans une plage à l'aide de Python

Vaibhav Vaibhav 12 avril 2022
Fixer les nombres dans une plage à l'aide de Python

Le serrage fait référence à la limitation d’une valeur dans une plage. Lorsqu’une valeur dépasse une plage, elle est remplacée par la plus grande valeur possible, et si la valeur succède à une plage, elle est remplacée par la plus petite valeur possible.

Dans cet article, nous allons apprendre à limiter les nombres dans une plage à l’aide de Python.

Fixer les nombres dans une plage à l’aide de Python

Le code Python suivant décrit comment limiter les nombres dans une plage.

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

Production :

1
34
10
1
0

La fonction stub ci-dessus renvoie la valeur d’entrée dans la plage. Notez comment les fonctions min() et max() ont été utilisées pour l’implémentation.

Une façon plus créative d’écrire la fonction stub ci-dessus consiste à utiliser une liste et une opération de tri. Le code Python suivant illustre cela.

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

Production :

1
34
10
1
0

La valeur parfaite ou fixée se situera toujours au milieu de la liste ou à l’indice 1. Dans le cas où la valeur d’entrée est supérieure à la plus grande valeur possible, la plus grande valeur possible sera au milieu de la liste.

Si la valeur d’entrée est inférieure à la plus petite valeur possible, la plus petite valeur possible se trouvera au milieu de la liste. Et, si la valeur d’entrée est dans la plage, elle se situera au milieu de la 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.