Condition multiple pour classification de triangle (hyper simple mais je ne comprends pas mon erreur)
Bonjour,
Je débute en python et mon problème risque de vous sembler trivial.
Je suits un tutoriel trouvé sur codingame qui demande d'écrire un programme permettant d'identifier la nature d'un triangle à partir des longueurs de ses cotés.
Voilà ce que j'ai pondu:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
from math import *
def ma_fonction(a,b,c):
if a==b==c:
return "EQUILATERAL"
elif a==b or a==c or b==c:
if a/b==((1+5**0.5)/2) or a/c==((1+5**0.5)/2) or b/c ==(1+5**0.5)/2 :
return "TRIANGLE D'OR"
elif a**2-b**2-c**2==0 or b**2-a**2-c**2==0 or c**2-a**2-b**2==0:
return "RECTANGLE ISOCELE"
else:
return "ISOCELE"
elif a**2-b**2-c**2==0 or b**2-a**2-c**2==0 or c**2-a**2-b**2==0:
return "RECTANGLE"
else:
return "QUELCONQUE" |
le problème c'est que quand je tape ma_fonction(1,1,2**0.5) au lieu d'avoir "RECTANGLE ISOCELE" j'ai "ISOCELE".
Je ne comprends pas pourquoi ma sous-condition est ignorée. Est-ce une histoire d'arrondi?
Je vous remercie si vous pouvez m'aider. Je m'arrache les cheveux.