Fijar números dentro de un rango usando Python
La sujeción se refiere a limitar un valor dentro de un rango. Cuando un valor excede un rango, se cambia al valor más grande posible, y si el valor supera un rango, se cambia al valor más pequeño posible.
En este artículo, aprenderemos cómo sujetar números dentro de un rango usando Python.
Fijar números dentro de un rango usando Python
El siguiente código de Python muestra cómo sujetar números dentro de un rango.
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))
Producción :
1
34
10
1
0
La función auxiliar anterior devuelve el valor de entrada dentro del rango. Fíjate cómo se han utilizado las funciones min()
y max()
para la implementación.
Una forma más creativa de escribir la función auxiliar anterior es usar una lista y una operación de clasificación. El siguiente código de Python muestra esto.
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))
Producción :
1
34
10
1
0
El valor perfecto o fijado siempre estará en el medio de la lista o en el índice 1
. En caso de que el valor de entrada sea mayor que el valor más grande posible, el valor más grande posible se colocará en el medio de la lista.
Si el valor de entrada es más pequeño que el valor más pequeño posible, el valor más pequeño posible estará en el medio de la lista. Y, si el valor de entrada está dentro del rango, estará en el medio de la lista.