J'ai un exercice simple. J'ai besoin de moins 2 tuples les uns des autres mais je ne veux pas que le résultat soit négatif, je veux arrêter de 0. De même, je veux ajouter 2 tuples mais je veux limiter la valeur supérieure de la valeur à 255. P>
Alors, quand je fais Y a-t-il des fonctions de commodité dans (1,1,1) - (5.200,30) code> Je devrais obtenir le résultat (0,0,0) code>. Et si je fais (200,10,150) + (90,20,50) code> Je devrais obtenir (255,30 200) code>. P>
maths code> ou numpy code> qui peut faire cela? P>
4 Réponses :
check clip code> dans numpy code>
Peut également utiliser NP.Subrent ou ajouter tuple (NP.Clip (NP.Subrent ((1,1,1), (5.200, 30)), 0,255)) Code>
def add(t1,t2):
"""
input: t1,t2 are tuples.
example t1(1,2,3) t2(7,8,9)
result=(a=1+7,b=2+8,c=3+9)
max of a, b, and c are 255
"""
a=t1[0]+t2[0]
b=t1[1]+t2[1]
c=t1[2]+t2[2]
if(a>255):
a=255
if(b>255):
b=255
if(c>255):
c=255
result=(a,b,c)
return result
#CALLING
x=(1,1,1)
y=(5,200,30)
z=(200,10,150)
t=(90,20,50)
print(add(z,t))
(255, 30, 200)
Pouvez-vous fournir une explication ou des commentaires pour aider les gens à comprendre votre code?
Vous pouvez faire quelque chose comme choisir max de (le résultat ou 0). De cette façon si le résultat est négatif, il retournera 0 à la place. Par exemple: pour la soustraction p> pour addition p>
Un moyen python python aux valeurs de clips serait la suivante: de même pour la limite inférieure: p> >>> x = (25, -20, 30)
>>> tuple(map(max, zip(x, (0,0,0))))
(25, 0, 30)