Aller au contenu principal

Atelier 5 - Match

Manque de temps?

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")
  1. Déterminez ce qui serait affiché pour choix = 1, choix = 3 et choix = 5.
  2. 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")
  1. Déterminez ce qui serait affiché pour jour = 1, jour = 4, jour = 7 et jour = 0.
  2. 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),Soupe(6), Soupe (6)
  • Plats principaux: Poulet (20),Steak(34), Steak (34), Tofu (49$)
  • Desserts: Pointe de tarte (9),Creˋmeglaceˊ(4), Crème glacé (4)

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")

🔑 Corrigé disponible