Atelier 5 - Match
Si vous êtes pressé, voici une sélection couvrant différents niveaux de difficulté: 1, 3, 5 et 8.
Compréhension
Numéro 1
Lisez le code suivant sans l'exécuter:
choix: int = 2
match choix:
case 1:
print("Démarrer")
case 2:
print("Options")
case 3:
print("Quitter")
case _:
print("Invalide")
- Déterminez ce qui serait affiché pour
choix = 1,choix = 3etchoix = 5. - Exécutez ensuite le code avec chaque valeur pour vérifier vos réponses.
Numéro 2
Lisez le code suivant sans l'exécuter:
jour: int = 3
match jour:
case 1 | 7:
print("Fin de semaine")
case 2 | 3 | 4 | 5 | 6:
print("Jour de semaine")
case _:
print("Invalide")
- Déterminez ce qui serait affiché pour
jour = 1,jour = 4,jour = 7etjour = 0. - Exécutez ensuite le code avec chaque valeur pour vérifier vos réponses.
Écriture
Pour tous les numéros suivants, résoudre les problèmes sans if (utilisez un match). Ce sont des numéros qui proviennent des exercices précédents.
Numéro 3
Écrire un algorithme qui selon un nombre (1-7) donne le jour correspondant. Tout nombre invalide affiche "-".
Exemples:
Entrez un chiffre entre 1 et 7: 1
dimanche
Entrez un chiffre entre 1 et 7: 5
jeudi
Entrez un chiffre entre 1 et 7: 42
-
Numéro 4
Écrire un algorithme qui, selon le titre désiré (M,m,F,f,N,n), le prénom et le nom, affiche un message approprié. M pour monsieur, F pour madame, N si la personne ne souhaite pas utiliser de titre.
Exemples:
Entrez le titre désiré (M,m,F,f,N,n): f
Entrez le prénom: France
Entrez le nom: Beaudoin
Bonjour madame France Beaudoin
Entrez le titre désiré (M,m,F,f,N,n): M
Entrez le prénom: Jean
Entrez le nom: Bon
Bonjour monsieur Jean Bon
Entrez le titre désiré (M,m,F,f,N,n): N
Entrez le prénom: Fred
Entrez le nom: Groleau
Bonjour Fred Groleau
Résoudre ces problèmes avec un if, sans match, puis faites l'inverse. Demandez-vous ensuite, quelle est la solution la plus simple?
Numéro 5
Demandez un mois à l'utilisateur (1 pour janvier, 2 pour février, 3 pour mars, etc.). Affichez la saison correspondante au mois sélectionné, ou affichez "Invalide" si le chiffre choisi n'est pas valide.
Exemples:
Entrez un nombre entre 1 et 12 représentant un mois (1 = janvier): 5
Printemps
Entrez un nombre entre 1 et 12 représentant un mois (1 = janvier): 12
Hiver
Entrez un nombre entre 1 et 12 représentant un mois (1 = janvier): 42
Invalide
Numéro 6
Demandez un jour et un mois à l'utilisateur (1 pour janvier, 2 pour février, 3 pour mars, etc.). Indiquez si la date entrée est valide, considérez que l'année n'est pas bissextile.
Numéro 7 - Défi
Dans une chaîne de restaurant les choix suivants sont offerts:
- Entrées: Salade (8)
- Plats principaux: Poulet (20), Tofu (49$)
- Desserts: Pointe de tarte (9)
Demandez à l'utilisateur s'il veut une entrée, si oui offrez lui les choix disponible. Répéter pour chaque catégorie. Affichez le total de la facture ainsi que le pourboire suggéré de 42%.
Vous pouvez changer les catégories, les repas et les prix selon votre gout.
Exemple:
Voulez-vous une entrée (O/N)? O
Voulez-vous:
1 - Une salade (8$)
2 - Une soupe (6$)
Votre choix: 2
Voulez-vous un plat principal (O/N)? O
Voulez-vous:
1 - Le poulet (20$)
2 - Le steak (34$)
3 - Le tofu (49$)
Votre choix: 2
Voulez-vous un dessert (O/N)? O
Voulez-vous:
1 - Une pointe de tarte (9$)
2 - Une crème glacé (4$)
Votre choix: 1
Total de 49.00$, pourboire suggéré: 20.58$
Voulez-vous une entrée (O/N)? N
Voulez-vous un plat principal (O/N)? O
Voulez-vous:
1 - Le poulet (20$)
2 - Le steak (34$)
3 - Le tofu (49$)
Votre choix: 4
Choix invalide
Voulez-vous un dessert (O/N)? bla
Total de 0.00$, pourboire suggéré: 0.00$
Analyse
Voici 2 problèmes accompagnés d'une solution déjà écrite (générée par une IA). Certaines contiennent une erreur, d'autres fonctionnent mais pourraient être améliorées. Analysez chaque solution et expliquez ce qui pourrait être corrigé ou amélioré.
Numéro 8
Affichez un message selon la note d'un examen: "Excellent" si 90 et plus, "Bien" si 70 à 89, "Échec" sinon.
note: int = 65
seuil_excellent: int = 90
seuil_bien: int = 70
match note:
case seuil_excellent:
print("Excellent")
case seuil_bien:
print("Bien")
case _:
print("Échec")
Numéro 9
Affichez la couleur d'une carte à jouer selon sa sorte (♠, ♣, ♥, ♦).
carte: str = "♥"
match carte:
case "♠":
print("Noir")
case "♣":
print("Noir")
case "♥":
print("Rouge")
case "♦":
print("Rouge")
case _:
print("Invalide")