Partie 2 : Conditions et boucles
5. Instructions conditionnelles
Section intitulée « 5. Instructions conditionnelles »Les instructions conditionnelles permettent au programme de prendre des décisions : exécuter un bloc de code seulement si une condition est vraie.
5.1. Le if simple
Section intitulée « 5.1. Le if simple »age = int(input("Quel âge as-tu ? "))
if age >= 18: print("Tu es majeur(e).") print("Tu peux passer le permis.")Structure :
if condition: instruction(s) à exécuter si la condition est vraie5.2. Le if / else
Section intitulée « 5.2. Le if / else »Pour exécuter un bloc si la condition est vraie, et un autre bloc si elle est fausse :
age = int(input("Quel âge as-tu ? "))
if age >= 18: print("Tu es majeur(e).")else: print("Tu es mineur(e).")5.3. Le if / elif / else
Section intitulée « 5.3. Le if / elif / else »Pour tester plusieurs conditions enchaînées :
note = float(input("Ta note sur 20 : "))
if note >= 16: print("Très bien !")elif note >= 14: print("Bien !")elif note >= 12: print("Assez bien.")elif note >= 10: print("Tu as la moyenne.")else: print("Il faut réviser...")elif est la contraction de « else if ». Python teste les conditions dans l'ordre : dès qu'une condition est vraie, il exécute le bloc correspondant et ignore tous les suivants.
5.4. Conditions imbriquées
Section intitulée « 5.4. Conditions imbriquées »On peut mettre un if à l'intérieur d'un autre if :
age = int(input("Ton âge : "))a_carte = input("As-tu une carte de réduction ? (oui/non) : ")
if age < 18: if a_carte == "oui": print("Tarif jeune avec réduction : 5 €") else: print("Tarif jeune : 8 €")else: if a_carte == "oui": print("Tarif adulte avec réduction : 10 €") else: print("Tarif plein : 15 €")5.5. Les opérateurs de comparaison
Section intitulée « 5.5. Les opérateurs de comparaison »| Opérateur | Signification | Exemple | Résultat |
|---|---|---|---|
== | Égal à | 5 == 5 | True |
!= | Différent de | 5 != 3 | True |
< | Strictement inférieur | 3 < 5 | True |
> | Strictement supérieur | 5 > 3 | True |
<= | Inférieur ou égal | 5 <= 5 | True |
>= | Supérieur ou égal | 5 >= 6 | False |
5.6. Les opérateurs logiques
Section intitulée « 5.6. Les opérateurs logiques »On peut combiner plusieurs conditions avec and, or et not :
| Opérateur | Signification | Exemple |
|---|---|---|
and | ET logique (les deux conditions doivent être vraies) | age >= 12 and age <= 17 |
or | OU logique (au moins une condition doit être vraie) | jour == "samedi" or jour == "dimanche" |
not | NON logique (inverse la condition) | not inscrit |
# AND : les deux conditions doivent être vraiesage = 16a_carte = Trueif age >= 12 and a_carte: print("Tarif réduit.")
# OR : au moins une condition doit être vraietemperature = 35if temperature < 0 or temperature > 40: print("Température extrême !")
# NOT : inverse vrai et fauxinscrit = Falseif not inscrit: print("Veuillez vous inscrire.")Table de vérité :
a | b | a and b | a or b | not a |
|---|---|---|---|---|
True | True | True | True | False |
True | False | False | True | False |
False | True | False | True | True |
False | False | False | False | True |
5.7. L'expression conditionnelle (en une ligne)
Section intitulée « 5.7. L'expression conditionnelle (en une ligne) »Pour les cas simples, Python permet d'écrire un if/else en une seule ligne :
age = 20
# Forme classiqueif age >= 18: statut = "majeur"else: statut = "mineur"
# Forme condensée (expression conditionnelle)statut = "majeur" if age >= 18 else "mineur"
# Utile dans un printprint("Accès autorisé" if age >= 18 else "Accès refusé")6. Les boucles
Section intitulée « 6. Les boucles »Les boucles permettent de répéter un bloc d'instructions plusieurs fois, ce qui évite de dupliquer du code.
6.1. La boucle for (boucle bornée)
Section intitulée « 6.1. La boucle for (boucle bornée) »La boucle for répète un bloc de code un nombre déterminé de fois :
# Afficher les nombres de 0 à 4for i in range(5): print(i)# Affiche : 0, 1, 2, 3, 4Les variantes de range()
Section intitulée « Les variantes de range() »| Appel | Valeurs générées | Nombre de valeurs |
|---|---|---|
range(5) | 0, 1, 2, 3, 4 | 5 |
range(1, 6) | 1, 2, 3, 4, 5 | 5 |
range(0, 10, 2) | 0, 2, 4, 6, 8 | 5 |
range(10, 0, -1) | 10, 9, 8, ..., 1 | 10 |
range(5, 0, -2) | 5, 3, 1 | 3 |
range(3, 3) | (rien) | 0 |
Parcourir une chaîne de caractères
Section intitulée « Parcourir une chaîne de caractères »# Deux façons de parcourir les caractères d'un mot :
# Méthode 1 : directement (plus simple et plus « pythonique »)mot = "Python"for lettre in mot: print(lettre)
# Méthode 2 : par indice (utile quand on a besoin de la position)mot = "Python"for i in range(len(mot)): print(f"Caractère n°{i} : {mot[i]}")Parcourir une liste
Section intitulée « Parcourir une liste »fruits = ["pomme", "banane", "cerise"]
# Méthode 1 : parcourir les élémentsfor fruit in fruits: print(fruit)
# Méthode 2 : parcourir avec l'indice (enumerate)for i, fruit in enumerate(fruits): print(f"{i} : {fruit}")# 0 : pomme# 1 : banane# 2 : ceriseLe patron « accumulateur »
Section intitulée « Le patron « accumulateur » »C'est un schéma de programmation très courant : on initialise une variable, puis on la modifie à chaque tour de boucle :
# Somme des entiers de 1 à 100somme = 0for i in range(1, 101): somme = somme + i # ou somme += iprint(f"La somme vaut {somme}") # 5050
# Compter les voyelles d'un motmot = "programmation"compteur = 0for lettre in mot: if lettre in "aeiouy": compteur += 1print(f"Nombre de voyelles : {compteur}") # 5
# Construire une chaîne lettre par lettreresultat = ""for i in range(1, 6): resultat += str(i) + " "print(resultat) # "1 2 3 4 5 "6.2. La boucle while (boucle non bornée)
Section intitulée « 6.2. La boucle while (boucle non bornée) »La boucle while répète un bloc tant qu'une condition est vraie. On l'utilise quand on ne connaît pas à l'avance le nombre de répétitions :
# Deviner un nombresecret = 42proposition = int(input("Devinez le nombre : "))
while proposition != secret: if proposition < secret: print("C'est plus !") else: print("C'est moins !") proposition = int(input("Nouvel essai : "))
print("Bravo, c'est bien 42 !")Valider une saisie utilisateur :
# Méthode 1 : saisie avant la bouclenote = float(input("Note entre 0 et 20 : "))while note < 0 or note > 20: print("Erreur ! La note doit être entre 0 et 20.") note = float(input("Note entre 0 et 20 : "))
# Méthode 2 : avec un « drapeau » (flag)valide = Falsewhile not valide: note = float(input("Note entre 0 et 20 : ")) if 0 <= note <= 20: valide = True else: print("Erreur ! La note doit être entre 0 et 20.")6.3. break et continue
Section intitulée « 6.3. break et continue »Ces deux instructions modifient le comportement normal d'une boucle :
break: sort immédiatement de la bouclecontinue: saute au tour suivant de la boucle
# break : arrêter la boucle quand on trouve ce qu'on cherchefor i in range(1, 100): if i * i > 50: print(f"Le plus petit entier dont le carré dépasse 50 est {i}") break# Affiche : Le plus petit entier dont le carré dépasse 50 est 8
# continue : sauter certains toursfor i in range(1, 11): if i % 3 == 0: continue # On saute les multiples de 3 print(i)# Affiche : 1, 2, 4, 5, 7, 8, 106.4. Boucles imbriquées
Section intitulée « 6.4. Boucles imbriquées »On peut mettre une boucle à l'intérieur d'une autre :
# Table de multiplicationfor i in range(1, 6): for j in range(1, 6): print(f"{i} × {j} = {i * j:2d}", end=" ") print() # Saut de ligne après chaque ligne du tableau
# Triangle d'étoilesn = 5for i in range(1, n + 1): print("*" * i)# *# **# ***# ****# *****6.5. for ou while ? Comment choisir
Section intitulée « 6.5. for ou while ? Comment choisir »| Situation | Boucle à utiliser | Exemple |
|---|---|---|
| On connaît le nombre de répétitions | for | Afficher 10 fois « Bonjour » |
| On répète jusqu'à une condition | while | Attendre un mot de passe correct |
| On parcourt une collection | for | Parcourir les lettres d'un mot |
| On attend une saisie correcte | while | Redemander jusqu'à obtenir un nombre valide |
| On cherche un seuil | while | Trouver n tel que la somme dépasse 1000 |
© 2026 Corentin Dupont - LyCode
Créé avec Astro Starlight