def clamp(x):
return max(0, min(x, 255))
"#{0:02x}{1:02x}{2:02x}".format(clamp(r), clamp(g), clamp(b))
Cette méthode utilise la méthode préférée de formatage des chaînes de caractères. décrite dans le document PEP 3101 . Il utilise également min()
y max
afin de garantir que 0 <= {r,g,b} <= 255
.
Mise à jour a ajouté la fonction de serrage comme suggéré ci-dessous.
Mise à jour D'après le titre de la question et le contexte donné, il devrait être évident que cette fonction attend 3 ints dans [0,255] et renvoie toujours une couleur lorsqu'on lui passe 3 ints. Cependant, d'après les commentaires, il se peut que cela ne soit pas évident pour tout le monde, donc il faut le dire explicitement :
Fourni trois int
cela renverra un triplet hexagonal valide représentant une couleur. Si ces valeurs sont comprises entre [0 et 255], il les traitera comme des valeurs RVB et renverra la couleur correspondant à ces valeurs.
1 votes
Voir la réponse précédente de SO stackoverflow.com/questions/214359/ --Parmi les trois réponses, celle qui a reçu le plus de votes comprend un extrait de code python pour faire ce que je crois que vous recherchez.
3 votes
Le terme que vous recherchez est Hex Triplet. fr.wikipedia.org/wiki/Hex_color#Hex_triplet
0 votes
Pour une question plus générale, avec des réponses bien meilleures qu'ici : stackoverflow.com/a/57197866/624066