Énoncé de l'exercice

Écrivez un programme en Python qui demande à l’utilisateur de saisir les longueurs des trois côtés d’un triangle : a, b et c.
Le programme doit ensuite :
1. Vérifier si les trois côtés peuvent former un triangle (la somme de deux côtés doit toujours être supérieure au troisième).
2. Si c’est un triangle, déterminer le type de triangle :
- Équilatéral : tous les côtés égaux
- Isocèle : exactement deux côtés égaux
- Scalène : tous les côtés différents
3. Vérifier si le triangle est rectangle (théorème de Pythagore : le carré du plus grand côté est égal à la somme des carrés des deux autres côtés).
4. Afficher clairement tous les résultats : si ce n’est pas un triangle, l’indiquer, sinon préciser le type et s’il est rectangle.

Solution proposée

# On demande à l'utilisateur de saisir les trois côtés du triangle
a = float(input("Entrez le côté a : "))
b = float(input("Entrez le côté b : "))
c = float(input("Entrez le côté c : "))

# On commence par vérifier si les côtés peuvent former un triangle
if (a + b > c) and (a + c > b) and (b + c > a):
    
    # C'est bien un triangle
    print("C'est un triangle.")

    # On détermine le type de triangle selon les côtés
    if a == b and b == c:
        print("Type : équilatéral")
    elif a == b or a == c or b == c:
        print("Type : isocèle")
    else:
        print("Type : scalène")

    # Vérification si le triangle est rectangle
    # On identifie le plus grand côté
    if a >= b and a >= c:
        hyp = a
        cat1 = b
        cat2 = c
    elif b >= a and b >= c:
        hyp = b
        cat1 = a
        cat2 = c
    else:
        hyp = c
        cat1 = a
        cat2 = b

    # Théorème de Pythagore
    if hyp ** 2 == cat1 ** 2 + cat2 ** 2:
        print("C'est un triangle rectangle.")
else:
    # Ce n'est pas un triangle
    print("Ce n'est pas un triangle.")