clip_values Recortar valores numéricos para asegurarse de que estén dentro de un límite inferior y superior es una tarea muy común.
Por ejemplo, si está tratando con colores RGB, desea que cada canal esté entre 0 y 255, si está tratando con las ventas de tiendas, necesita que estén entre 0 y 1, o si está escribiendo un juego genial, desea que su personaje permanezca dentro de la pantalla.
Ahora, si tienes que hacer todo este recorte, ¿qué alternativa al recorte prefieres?
clip_values.clip clip ofrece una sintaxis legible por humanos a sus operaciones de recorte:
from clip_values import clip
colour_channel = clip ( colour_channel ). between_ ( 0 ). and_ ( 255 )
discount = clip ( discount ). between_ ( 0 ). and_ ( 1 )
player_x_pos = clip ( player_x_pos ). between_ ( 0 ). and_ ( SCREEN_WIDTH ) ¡La alternativa clip es la más simple y fácil de leer! Compare con otras dos alternativas comunes:
Usando un if: ... elif: ... el bloque también es fácil de leer, pero toma 4x más líneas de código:
if colour_channel < 0 :
colour_channel = 0
elif colour_channel > 255 :
colour_channel = 255
if discount < 0 :
discount = 0
elif discount > 1 :
discount = 1
if player_x_pos < 0 :
player_x_pos = 0
elif player_x_pos > SCREEN_WIDTH :
player_x_pos = SCREEN_WIDTH min de encadenamiento con max (o al revés) es más corto, pero esto es mucho más difícil de leer y debe pasar un par de minutos descubriendo la interacción entre las dos llamadas consecutivas a min / max :
colour_channel = min ( 255 , max ( 0 , colour_channel ))
discount = max ( 0 , min ( 1 , discount ))
player_x_pos = min ( SCREEN_WIDTH , max ( 0 , player_x_pos ))