Structures Conditionnelles en Python
Introduction aux Conditions
Les structures conditionnelles permettent à votre programme de prendre des décisions et d'exécuter différents blocs de code selon que certaines conditions sont vraies ou fausses.
L'Instruction if
(si)
L'instruction if
est la structure conditionnelle la plus basique. Elle exécute un bloc de code seulement si la condition est vraie.
Syntaxe de base :
if condition:
# bloc de code à exécuter si la condition est True
age = 18
if age >= 18:
print("Vous êtes majeur")
# Sortie : Vous êtes majeur
Attention à l'indentation : En Python, l'indentation (les espaces au début de la ligne) est cruciale. Elle définit les blocs de code. Utilisez 4 espaces pour chaque niveau d'indentation.
L'Instruction if...else
(si...sinon)
L'instruction if...else
permet d'exécuter un bloc de code si la condition est vraie, et un autre bloc si elle est fausse.
Syntaxe :
if condition:
# bloc à exécuter si condition est True
else:
# bloc à exécuter si condition est False
age = 16
if age >= 18:
print("Vous êtes majeur")
else:
print("Vous êtes mineur")
# Sortie : Vous êtes mineur
L'Instruction if...elif...else
(si...sinon si...sinon)
L'instruction if...elif...else
permet de tester plusieurs conditions dans l'ordre.
Syntaxe :
if condition1:
# bloc si condition1 est True
elif condition2:
# bloc si condition2 est True
elif condition3:
# bloc si condition3 est True
else:
# bloc si toutes les conditions sont False
note = 75
if note >= 90:
print("Excellent !")
elif note >= 70:
print("Bien")
elif note >= 50:
print("Passable")
else:
print("Échec")
# Sortie : Bien
Conditions Imbriquées
Vous pouvez imbriquer des conditions à l'intérieur d'autres conditions.
age = 25
est_etudiant = True
if age >= 18:
if est_etudiant:
print("Étudiant majeur")
else:
print("Majeur non-étudiant")
else:
print("Mineur")
# Sortie : Étudiant majeur
Opérateurs Logiques dans les Conditions
Vous pouvez combiner plusieurs conditions avec les opérateurs logiques and
, or
et not
.
age = 25
salaire = 30000
# Avec AND
if age >= 18 and salaire > 25000:
print("Éligible pour le prêt")
# Avec OR
temperature = 35
if temperature < 0 or temperature > 30:
print("Conditions météo extrêmes")
# Avec NOT
est_ferie = False
if not est_ferie:
print("Jour de travail")
Conditions avec des Chaînes de Caractères
Vous pouvez aussi utiliser des conditions avec des chaînes de caractères.
langue = "français"
if langue == "français":
print("Bonjour !")
elif langue == "english":
print("Hello!")
elif langue == "español":
print("¡Hola!")
else:
print("Langue non reconnue")
Instructions Conditionnelles sur une Ligne
Pour des conditions simples, Python permet une écriture condensée sur une ligne.
# Condition if simple
age = 20
if age >= 18: print("Majeur")
# Opérateur ternaire
age = 16
statut = "Majeur" if age >= 18 else "Mineur"
print(statut) # Sortie : Mineur
Valeurs Truthy et Falsy
En Python, certaines valeurs sont considérées comme "fausses" (Falsy) dans un contexte booléen :
False
None
0
(entier)
0.0
(float)
""
(chaîne vide)
[]
(liste vide)
{}
(dictionnaire vide)
()
(tuple vide)
Toutes les autres valeurs sont considérées comme "vraies" (Truthy).
nom = ""
if nom:
print(f"Bonjour {nom}")
else:
print("Nom non fourni")
# Sortie : Nom non fourni
Exemples Pratiques Complets
Exemple 1 : Calculateur d'IMC
poids = 70
taille = 1.75
imc = poids / (taille ** 2)
print(f"Votre IMC est : {imc:.2f}")
if imc < 18.5:
categorie = "Maigreur"
elif imc < 25:
categorie = "Poids normal"
elif imc < 30:
categorie = "Surpoids"
else:
categorie = "Obésité"
print(f"Catégorie : {categorie}")
Exemple 2 : Système de Login
username = "admin"
password = "1234"
username_saisi = input("Nom d'utilisateur : ")
password_saisi = input("Mot de passe : ")
if username_saisi == username and password_saisi == password:
print("Connexion réussie !")
else:
print("Nom d'utilisateur ou mot de passe incorrect")
Exemple 3 : Calculateur de Réductions
montant_achat = 150
est_membre = True
if est_membre:
if montant_achat > 100:
reduction = montant_achat * 0.20
elif montant_achat > 50:
reduction = montant_achat * 0.10
else:
reduction = 0
else:
reduction = 0
montant_final = montant_achat - reduction
print(f"Montant initial : {montant_achat}€")
print(f"Réduction : {reduction}€")
print(f"Montant final : {montant_final}€")
Exercices Pratiques
Exercice 1 : Vérificateur d'Année Bissextile
# Une année est bissextile si :
# - Elle est divisible par 4 ET non divisible par 100
# - OU elle est divisible par 400
annee = 2024
if (annee % 4 == 0 and annee % 100 != 0) or (annee % 400 == 0):
print(f"{annee} est une année bissextile")
else:
print(f"{annee} n'est pas une année bissextile")
Exercice 2 : Classificateur de Nombres
nombre = float(input("Entrez un nombre : "))
if nombre > 0:
if nombre == int(nombre):
print("Nombre entier positif")
else:
print("Nombre décimal positif")
elif nombre < 0:
if nombre == int(nombre):
print("Nombre entier négatif")
else:
print("Nombre décimal négatif")
else:
print("Zéro")
Bonnes Pratiques
- Utilisez des noms de variables explicites pour vos conditions
- Évitez les conditions trop complexes - décomposez-les si nécessaire
- Utilisez des parenthèses pour clarifier l'ordre d'évaluation
- Vérifiez toujours votre indentation
- Testez vos conditions avec différentes valeurs
Astuce : Utilisez la fonction print()
pour déboguer vos conditions et voir quelle branche est exécutée.
Résumé
if
exécute un bloc si la condition est vraie
if...else
permet de gérer les cas vrai et faux
if...elif...else
permet de tester plusieurs conditions
- L'indentation est cruciale en Python
- Les opérateurs logiques permettent de combiner des conditions
- Les valeurs Falsy sont évaluées comme False dans les conditions
- Les conditions imbriquées permettent une logique complexe