clip_values A recorte de valores numéricos para garantir que eles estejam dentro de um limite inferior e superior é uma tarefa muito comum.
Por exemplo, se você estiver lidando com cores RGB, deseja que cada canal esteja entre 0 e 255, se estiver lidando com as vendas de lojas, precisará que eles estejam entre 0 e 1 ou se estiver escrevendo um jogo legal, deseja que seu personagem fique dentro da tela.
Agora, se você tiver que fazer todo esse recorte, qual alternativa ao recorte você prefere?
clip_values.clip clip oferece sintaxe legível por humanos às suas operações 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 ) A alternativa clip é a mais simples e fácil de ler! Compare -o com outras duas alternativas comuns:
Usando um if: ... elif: ... o bloco também é fácil de ler, mas ocupa 4x mais linhas 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 Correção min com max (ou o contrário) é mais curto, mas isso é muito mais difícil de ler e você precisa gastar alguns minutos descobrindo a interação entre as duas chamadas consecutivas para 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 ))