clip_values Couper les valeurs numériques pour s'assurer qu'elles se trouvent dans une borne inférieure et supérieure est une tâche très courante.
Par exemple, si vous avez affaire aux couleurs RVB, vous voulez que chaque chaîne soit entre 0 et 255, si vous avez affaire à la vente de magasins, vous avez besoin qu'ils soient entre 0 et 1, ou si vous écrivez un jeu sympa, vous voulez que votre personnage reste à l'écran.
Maintenant, si vous devez faire toute cette coupure, quelle alternative à l'écrêtage préférez-vous?
clip_values.clip clip propose une syntaxe lisible par l'homme à vos opérations de coupure:
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 ) L'alternative clip est la plus simple et la plus facile à lire! Comparez-le avec deux autres alternatives communes:
Utilisation d'un if: ... elif: ... le bloc est également facile à lire, mais prend 4 fois plus de lignes de code:
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 Chaîne min avec max (ou l'inverse) est plus court, mais cela est beaucoup plus difficile à lire et vous devez passer quelques minutes à déterminer l'interaction entre les deux appels consécutifs à 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 ))