TP Python - Structures Conditionnelles
Durée : 1h30 - 2h (version enrichie)
Objectifs du TP
Maîtriser les structures conditionnelles (if, if-else, if-elif-else)
Utiliser les opérateurs de comparaison et logiques
Manipuler les booléens et les prédicats
Combiner plusieurs conditions avec and, or, not
Partie 1 : Structure if simple (20 min)
Exercice 1.1 : Premier if (5 min)
Écrivez un programme qui :
1. Demande l'âge de l'utilisateur
2. Si l'âge est supérieur ou égal à 18, affiche "Vous êtes majeur"
Syntaxe à utiliser :
python
if condition:
# instructions
Exercice 1.2 : Comparaisons multiples (8 min)
Créez un programme qui demande un nombre à l'utilisateur et :
1. Affiche "Nombre positif" si le nombre est supérieur à 0
2. Affiche "Nombre pair" si le nombre est divisible par 2
3. Affiche "Nombre supérieur à 100" si le nombre dépasse 100
Question : Que se passe-t-il si le nombre est 50 ? Combien de messages s'affichent ?
Exercice 1.3 : Limites du if simple (7 min)
Écrivez un programme qui demande la température en degrés Celsius et :
1. Affiche "Il fait chaud" si la température est supérieure à 25
2. Affiche "Température normale" dans tous les cas
Question : Quel est le problème avec ce code ? Que s'affiche-t-il quand la température est 30 ?
Exercice 1.4 : Bonus de salaire (5 min)
Une entreprise accorde un bonus de 500€ si le chiffre d'affaires dépasse 10000€.
Créez un programme qui :
1. Demande le chiffre d'affaires réalisé
2. Affiche "Vous recevez un bonus de 500€" si CA > 10000€
Exercice 1.5 : Alerte météo (5 min)
Écrivez un programme qui demande la vitesse du vent en km/h et :
1. Affiche "Alerte tempête" si la vitesse dépasse 80 km/h
2. Affiche "Alerte vent fort" si la vitesse dépasse 50 km/h
3. Affiche "Conditions venteuses" si la vitesse dépasse 30 km/h
Question : Si le vent est à 90 km/h, combien de messages s'affichent ? Pourquoi ?
Partie 2 : Structure if-else (25 min)
Exercice 2.1 : Pair ou impair (7 min)
Créez un programme qui :
1. Demande un nombre entier à l'utilisateur
2. Affiche "Le nombre est pair" si le nombre est divisible par 2
3. Affiche "Le nombre est impair" sinon
Syntaxe à utiliser :
python
if condition:
# instructions si vrai
else:
# instructions si faux
Exercice 2.2 : Contrôle d'accès (8 min)
Créez un programme de contrôle d'accès qui :
1. Demande l'âge de l'utilisateur
2. Si l'âge est >= 18 : affiche "Accès autorisé" et demande ensuite s'il a un billet (oui/non)
Si oui : affiche "Bienvenue !"
Si non : affiche "Veuillez acheter un billet"
3. Si l'âge est < 18 : affiche "Accès refusé - Mineur"
Exercice 2.3 : Calculateur de remise (5 min)
Un magasin applique une remise de 10% si le montant d'achat dépasse 100€. Créez un programme qui :
1. Demande le montant de l'achat
2. Calcule le montant final (avec ou sans remise)
3. Affiche le montant à payer et indique si une remise a été appliquée
Exercice 2.4 : Année bissextile (7 min)
Créez un programme simplifié qui détermine si une année est bissextile :
1. Demande une année
2. Si l'année est divisible par 4 : affiche "Année bissextile"
3. Sinon : affiche "Année non bissextile"
Note : C'est une version simplifiée. La règle complète sera vue avec if-elif-else.
Exercice 2.5 : Connexion utilisateur (8 min)
Créez un système de connexion simple :
1. Demande un nom d'utilisateur (stockez "admin" comme utilisateur valide)
2. Demande un mot de passe (stockez "1234" comme mot de passe valide)
3. Si les deux sont corrects : affiche "Connexion réussie"
4. Sinon : affiche "Identifiants incorrects"
Aide : Utilisez deux if imbriqués ou une condition and .
Partie 3 : Structure if-elif-else (30 min)
Exercice 3.1 : Mention scolaire (8 min)
Créez un programme qui demande une note sur 20 et affiche la mention correspondante :
note >= 16 : "Très bien"
note >= 14 : "Bien"
note >= 12 : "Assez bien"
note >= 10 : "Passable"
note < 10 : "Insuffisant"
Syntaxe à utiliser :
python
if condition1:
# instructions
elif condition2:
# instructions
elif condition3:
# instructions
else:
# instructions
Exercice 3.2 : Catégories d'âge (7 min)
Écrivez un programme qui demande l'âge et affiche la catégorie :
0-2 ans : "Bébé"
3-12 ans : "Enfant"
13-17 ans : "Adolescent"
18-59 ans : "Adulte"
60 ans et plus : "Senior"
Exercice 3.3 : Calculateur d'IMC (10 min)
Créez un programme qui calcule l'Indice de Masse Corporelle (IMC) :
1. Demande le poids (en kg) et la taille (en mètres)
2. Calcule l'IMC = poids / (taille²)
3. Affiche la catégorie selon l'IMC :
IMC < 18.5 : "Insuffisance pondérale"
18.5 <= IMC < 25 : "Corpulence normale"
25 <= IMC < 30 : "Surpoids"
IMC >= 30 : "Obésité"
Exercice 3.4 : Convertisseur de notes (8 min)
Créez un convertisseur de notes américaines vers françaises :
1. Demande une lettre (A, B, C, D, F)
2. Affiche l'équivalent français :
A : "Excellent (16-20)"
B : "Bien (14-16)"
C : "Assez bien (12-14)"
D : "Passable (10-12)"
F : "Insuffisant (0-10)"
Autre : "Note invalide"
Exercice 3.5 : Calculateur de frais de port (8 min)
Un site e-commerce applique les frais de port suivants selon le poids :
Moins de 500g : 5€
Entre 500g et 2kg : 10€
Entre 2kg et 5kg : 15€
Plus de 5kg : 25€
Livraison gratuite si montant > 50€
Créez un programme qui :
1. Demande le poids du colis (en grammes) et le montant de la commande
2. Calcule les frais de port
3. Affiche le total à payer
Exercice 3.6 : Année bissextile (version complète) (6 min)
Créez la version complète du détecteur d'année bissextile avec les règles :
Divisible par 400 : bissextile
Divisible par 100 mais pas par 400 : non bissextile
Divisible par 4 mais pas par 100 : bissextile
Sinon : non bissextile
Partie 4 : Opérateurs logiques (and, or, not) (30 min)
Exercice 4.1 : Opérateur AND (8 min)
Créez un programme d'accès à une salle de sport qui vérifie :
1. L'utilisateur a entre 16 et 65 ans
2. L'utilisateur a un abonnement valide (oui/non)
3. Affiche "Accès autorisé" seulement si les DEUX conditions sont vraies
4. Sinon, affiche pourquoi l'accès est refusé
Aide : Utilisez and pour combiner les conditions.
Exercice 4.2 : Opérateur OR (7 min)
Un cinéma offre une réduction si :
L'utilisateur a moins de 12 ans OU plus de 65 ans
OU c'est mercredi (demandez le jour de la semaine)
Créez un programme qui :
1. Demande l'âge et le jour de la semaine
2. Calcule le prix du ticket (10€ normal, 7€ avec réduction)
3. Affiche le prix et explique si une réduction est appliquée
Exercice 4.3 : Opérateur NOT (5 min)
Créez un programme qui vérifie si un nombre est en dehors de l'intervalle [10, 50] :
1. Demande un nombre
2. Utilise not pour vérifier que le nombre N'EST PAS entre 10 et 50
3. Affiche "Nombre hors intervalle" ou "Nombre dans l'intervalle"
Exercice 4.4 : Combinaison d'opérateurs (5 min)
Créez un validateur de mot de passe qui vérifie :
1. Le mot de passe a au moins 8 caractères ( len(mot_de_passe) >= 8 )
2. Le mot de passe contient au moins un chiffre ( any([Link]() for c in mot_de_passe) )
3. Le mot de passe n'est pas "password" ou "12345678"
Utilisez AND, OR et NOT pour créer ces conditions.
Exercice 4.5 : Triangle valide (7 min)
Un triangle est valide si la somme de deux côtés est toujours supérieure au troisième côté.
Créez un programme qui :
1. Demande les trois côtés d'un triangle (a, b, c)
2. Vérifie avec and si : (a+b > c) ET (a+c > b) ET (b+c > a)
3. Affiche si le triangle est valide ou non
Exercice 4.6 : Weekend ou férié (6 min)
Créez un programme qui détermine si quelqu'un doit travailler :
1. Demande le jour de la semaine (lundi, mardi, etc.)
2. Demande si c'est un jour férié (oui/non)
3. Affiche "Repos" si c'est samedi OU dimanche OU un jour férié
4. Sinon affiche "Travail"
Exercice 4.7 : Accès VIP (8 min)
Un événement accorde l'accès VIP si :
L'utilisateur est membre premium OU a dépensé plus de 500€ cette année
ET l'utilisateur n'est pas banni
ET l'événement n'est pas complet
Créez un programme qui vérifie toutes ces conditions et affiche le résultat.
Exercice 4.8 : Table de vérité (6 min)
Créez un programme qui affiche la table de vérité de deux booléens A et B :
1. Teste toutes les combinaisons : (True, True), (True, False), (False, True), (False, False)
2. Pour chaque combinaison, affiche :
A and B
A or B
not A
not B
Partie 5 : Exercices supplémentaires de synthèse (15 min)
Exercice 5.1 : Jeu de devinette (7 min)
Créez un mini-jeu de devinette :
1. Stockez un nombre secret (par exemple 42)
2. Demandez à l'utilisateur de deviner
3. Indiquez si le nombre est trop grand, trop petit, ou correct
4. Affichez le nombre de tentatives autorisées restantes (3 tentatives maximum)
Exercice 5.2 : Équation du second degré (8 min)
Créez un programme qui résout ax² + bx + c = 0 :
1. Demande les coefficients a, b, c
2. Calcule le discriminant Δ = b² - 4ac
3. Selon la valeur de Δ :
Δ > 0 : "Deux solutions réelles distinctes"
Δ = 0 : "Une solution double"
Δ < 0 : "Pas de solution réelle"
Partie 6 : Projet Final - Système de Notation (20 min)
Créez un système complet d'évaluation d'étudiants avec les fonctionnalités suivantes :
Fonctionnalités requises :
1. Saisie des informations :
Nom de l'étudiant
Note de contrôle continu (sur 20)
Note d'examen final (sur 20)
Nombre d'absences
2. Calcul de la moyenne :
Moyenne = (Contrôle continu × 0.4) + (Examen final × 0.6)
3. Détermination du résultat :
Si absences > 5 : "Ajourné pour absences" (peu importe la note)
Sinon, selon la moyenne :
moyenne >= 16 : "Admis avec mention Très bien"
moyenne >= 14 : "Admis avec mention Bien"
moyenne >= 12 : "Admis avec mention Assez bien"
moyenne >= 10 : "Admis"
moyenne >= 8 : "Rattrapage"
moyenne < 8 : "Ajourné"
4. Affichage final :
Nom de l'étudiant
Moyenne calculée (arrondie à 2 décimales)
Résultat et mention éventuelle
Message d'encouragement ou de félicitations selon le cas
Bonus (si temps disponible) :
Vérifier que les notes sont bien entre 0 et 20
Vérifier que le nombre d'absences est positif
Ajouter une vérification si l'étudiant a la moyenne AU MOINS dans l'une des deux notes
Proposer de recommencer pour un autre étudiant
Tests à effectuer pour le projet final
Testez votre programme avec ces cas :
1. Étudiant brillant : CC=18, Examen=17, Absences=2
2. Étudiant absent : CC=15, Examen=14, Absences=6
3. Étudiant au rattrapage : CC=9, Examen=8, Absences=3
4. Étudiant avec mention : CC=13, Examen=15, Absences=1
Conseils pratiques
Indentation : Elle est CRUCIALE en Python ! Toutes les instructions d'un bloc if/elif/else doivent être
indentées de la même manière (4 espaces ou 1 tabulation)
Tests : Testez toujours plusieurs cas (valeurs limites, cas normaux, cas extrêmes)
Opérateurs logiques :
and : toutes les conditions doivent être vraies
or : au moins une condition doit être vraie
not : inverse la condition
Parenthèses : Utilisez-les pour clarifier les priorités : if (age > 18) and (permis == "oui"):
Barème indicatif
Partie 1 : /12 points
Partie 2 : /15 points
Partie 3 : /18 points
Partie 4 : /20 points
Partie 5 : /10 points
Partie 6 : /25 points
Total : /100 points
Rappels syntaxiques
Structure if simple :
python
if condition:
instruction
Structure if-else :
python
if condition:
instruction1
else:
instruction2
Structure if-elif-else :
python
if condition1:
instruction1
elif condition2:
instruction2
else:
instruction3
Opérateurs de comparaison :
== , != , < , > , <= , >=
Opérateurs logiques :
and , or , not
Bon travail !