Chapitre 2 - Conditions et boucles
🎯 Objectifs du Chapitre
- Apprendre à écrire des programmes dynamiques en utilisant des conditions (
if,else) et des boucles (for,while). - Comprendre l’importance des structures de contrôle pour gérer le flux d'exécution d'un programme.
📖 1. Les conditions (Structures de décision)
1.1 Principe des conditions
Les structures conditionnelles permettent de prendre des décisions dans un programme. En fonction de certaines conditions, différentes parties du code peuvent être exécutées.
if: vérifie une condition et exécute le bloc de code associé si elle est vraie.elif: vérifie une autre condition lorsque la première est fausse et exécute le bloc de code associé si cette nouvelle condition est vraie.else: exécute un bloc de code si toutes les conditions précédentes sont fausses
Exemple :
if condition:
# Bloc de code exécuté si la condition est vraie
elif autre_condition:
# Bloc exécuté si la première condition est fausse et l’autre condition est vraie
else:
# Bloc exécuté si toutes les conditions précédentes sont faussesContrairement à d'autres langages tels que C/C++ ou même Java, Python utilise l’indentation (l'espace en début de ligne) pour délimiter les blocs de code.
Cette indentation est réalisée avec la touche Tab du clavier. Le raccourci Shift + Tab permet de retirer une indentation.
1.2 Opérateurs de comparaison
Les opérateurs de comparaison permettent de comparer deux valeurs. Ils sont utilisés dans les conditions pour vérifier si une condition est vraie ou fausse :
==: égal à!=: différent de<: inférieur à>: supérieur à<=: inférieur ou égal à>=: supérieur ou égal à
Exemple :
age = 18
if age >= 18:
print("Vous êtes majeur.")
else:
print("Vous êtes mineur.")
>> Vous êtes majeur.1.3 Opérateurs logiques
On peut combiner plusieurs conditions grâce aux opérateurs logiques :
and: toutes les conditions doivent être vraies.or: au moins une des conditions doit être vraie.not: inverse la condition.
Exemple :
x = 12
y = 3
if x > 5 and y < 10:
print("Les deux conditions sont vraies.")
>> Les deux conditions sont vraies.✏️ Exercice 3 : Un dressing intelligent
Un exemple d'organisation de vos dossiers/fichiers vous a été donné dans le chapitre précédent, vous pouvez vous en inspirer pour continuer à travailler de manière organisée tout au long de ce cours.
Rappel : Toujours ouvrir un dossier à l'ouverture de VSCode pour travailler à l'intérieur de celui-ci.
Objectif : Écrire un programme qui aide l’utilisateur à choisir une tenue en fonction de la température qu'il donne.
Consigne : Le programme demande à l’utilisateur la température extérieure et affiche une tenue de votre choix adaptée à la température en fonction des 4 cas suivants :
- Si la température est inférieure à 0°C
- Si la température est entre 0°C et 10°C
- Si la température est entre 10°C et 20°C
- Si la température est supérieure à 20°C
Vous savez maintenant écrire des conditions simples.
✏️ Exercice 4 : Les tables de vérité
Voici un tableau représentant les résultats des opérations logiques and et or :
| A | B | A and B | A or B |
|---|---|---|---|
| False | False | False | False |
| False | True | ? | ? |
| True | True | ? | ? |
| True | False | ? | ? |
Ce tableau s'appelle une table de vérité. Elle permet de déterminer le résultat d'une opération logique en fonction des valeurs de vérité des variables A et B.
Écrire un programme qui demande à l'utilisateur les valeurs de vérité de A et B et affiche les résultats des opérations logiques and et or afin de compléter les tableaux ci-dessus.
La fonction bool() ne permet pas de convertir les chaînes de caractères "True" ou "False" en booléens. Pour cela, on utilise la fonction eval().
Quelle est la différence entre le fonctionnement de la fonction bool() et de la fonction eval() ?
Faire de même pour la table de vérité de l'opération not(A and B) :
| A | B | not(A and B) |
|---|---|---|
| False | False | ? |
| False | True | ? |
| True | True | ? |
| True | False | ? |
Sans utiliser l'ordinateur, remplissez à la main la table de vérité de l'opération not A or not B suivante :
| A | B | not A | not B | not A or not B |
|---|---|---|---|---|
| False | False | ? | ? | ? |
| False | True | ? | ? | ? |
| True | True | ? | ? | ? |
| True | False | ? | ? | ? |
Vous savez maintenant manipuler les opérateurs logiques et avez découvert les tables de vérité.
✏️ Exercice 5 : Un dressing encore plus intelligent
Objectif : Améliorer le programme de l'exercice 3 en ajoutant à la température une condition sur le temps (pluie, soleil, nuageux).
Consigne : Reprenez le code de l'exercice 3. En plus de la température, vous devez offrir un choix de temps à l'utilisateur. Votre programme doit donc fonctionner de la manière suivante :
- Demander la température extérieure.
- Demander le temps qu'il fait.
- Afficher une tenue adaptée à la température et au temps.
Exemple :
>> Quelle est la température extérieure (en °C) ?
25
>> Quel temps fait-il ? (choisissez une réponse en tapant le numéro correspondant)
>> 1. Pluie
>> 2. Soleil
>> 3. Nuageux
2
>> Vous devriez porter un t-shirt et un short.📖 2. Les boucles (Structures itératives)
2.1 La boucle for
La boucle for permet de répéter un bloc de code un nombre déterminé de fois. Elle est souvent utilisée pour parcourir des séquences (listes, chaînes de caractères, etc.)
Exemple :
for variable in séquence:
# Bloc de code exécuté pour chaque élément de la séquencefor i in range(3):
print(i)
>> 0
>> 1
>> 22.2 La boucle while
La boucle while exécute un bloc de code tant qu’une condition est vraie.
Exemple :
while condition:
# Bloc de code exécuté tant que la condition est vraiecompteur = 0
while compteur < 4:
print(compteur)
compteur += 1
>> 0
>> 1
>> 2
>> 32.3 Boucle infinie et sortie de boucle
Une boucle infinie se produit quand la condition de sortie n’est jamais atteinte. Cela peut bloquer l’exécution du programme.
On peut interrompre une boucle avec l’instruction break.
Exemple :
compteur = 0
while True:
print(compteur)
compteur += 1
if compteur == 4:
break
>> 0
>> 1
>> 2
>> 3✏️ Exercice 6 : Le juste prix
Écrire un programme qui tire au sort un nombre entier entre 1 et 20 avec le module random, puis demande à l’utilisateur de le deviner. En fonction de sa réponse, le programme affiche :
- Si le nombre est trop petit, "Trop petit ! Essayez encore."
- Si le nombre est trop grand, "Trop grand ! Essayez encore."
- Si c’est correct, "Bravo, vous avez trouvé !"
Cherchez sur internet et expliquez ce qu'est un module en Python et comment l'utiliser.
Vous savez maintenant importer et utiliser un module simple (random) ainsi que vous servir d'une boucle while.
✅ Récapitulatif de Chapitre
Opérateurs de comparaison
==Égal à!=Différent de<Inférieur à>Supérieur à<=Inférieur ou égal à>=Supérieur ou égal à
Opérateurs logiques
andVrai si les deux conditions sont vraiesorVrai si au moins une des conditions est vraienotInverse la condition
Conditions
if age < 18:
print("mineur")
elif age < 65:
print("majeur")
else:
print("senior")Les deux-points ouvrent le bloc, l'indentation le délimite. elif et else sont facultatifs, et elif peut se répéter.
Boucle while
n = 0
while n < 3:
n = n + 1Répétée tant que la condition est vraie.
breakSort immédiatement de la bouclecontinuePasse à l'itération suivante
Boucle for
for i in range(3):
print(i)Répétée pour chaque élément. range(3) donne 0, 1 et 2 : la borne de fin est exclue. On peut aussi préciser le début et le pas.
break et continue s'utilisent aussi ici.
Pièges à éviter
=affecte une valeur,==compare deux valeurs.- Les deux-points et l'indentation délimitent le bloc : les oublier change le sens du programme.
input()renvoie une chaîne. Sans conversion,"10" < "9"est vrai : ce sont des textes qui sont comparés, pas des nombres.- Une boucle
whiledont la condition ne change jamais ne s'arrête pas.
Tables de vérité
| A | B | not A | not B | A and B | A or B | not(A and B) | not A or not B |
|---|---|---|---|---|---|---|---|
| False | False | True | True | False | False | True | True |
| False | True | True | False | False | True | True | True |
| True | True | False | False | True | True | False | False |
| True | False | False | True | False | True | True | True |