Aller au contenu principal

Atelier 4 - Lecture au clavier

Manque de temps?

Si vous êtes pressé, voici une sélection couvrant différents niveaux de difficulté: 3 (facile), 8 (moyen), 10 (difficile) et 12 (très difficile).

Vous pouvez reprendre tous les problèmes de Atelier 2, Numéro 4 ou Atelier 3, Numéros 4 à 8 et demandez les informations variables à l'utilisateur au lieu de les figer dans le code (hardcoded).

Compréhension​

Numéro 1​

Lisez le code suivant sans l'exécuter:

a = 5
b = "chat"
c = 3.14

print(a, b, sep=" - ")
print(a, b, c, end=" FIN\n")
print(c)
  1. Déterminez exactement ce qui sera affiché, ligne par ligne.
  2. Exécutez ensuite le code pour vérifier votre réponse.

Numéro 2​

Lisez le code suivant sans l'exécuter:

prix = 7
nom = "Alex"

print(f"{nom:>10}|")
print(f"{prix:05.2f}")
print(f"{prix:+d}")
  1. Déterminez exactement ce qui sera affiché, ligne par ligne.
  2. Exécutez ensuite le code pour vérifier votre réponse.

Écriture​

Numéro 3​

Demandez à l'utilisateur une température en Celsius. Convertissez cette température en Fahrenheit.

Exemple en console:

Entrez une température en Celsius: 22
Température en Fahrenheit: 71.6

Numéro 4​

Demandez à l'utilisateur une longueur et une largeur. Affichez si c'est un carré ou un rectangle puis calculez son aire.

Exemple 1:

Veuillez entrer une longueur: 10
Veuillez entrer une largeur: 10
C'est un carré
Aire de 100

Exemple 2:

Veuillez entrer une longueur: 42
Veuillez entrer une largeur: 5
C'est un rectangle
Aire de 210

Numéro 5​

Demandez à l'utilisateur un nombre de produits et un prix unitaire. Affichez sur 2 décimales: Le sous-total, la TPS, la TVQ et le total.

Exemple (remarquez l'erreur d'arrondis):

Veuillez entrer un nombre de produits: 4
Veuillez entrer un prix unitaire: 9.99

Sous-total: 39.96
TPS: 2.00
TVQ: 3.99
Total: 45.94

Numéro 6​

Demandez à l'utilisateur 5 notes, faites la moyenne puis affichez le résultat en pourcentage sur 2 décimales.

Exemple:

Veuillez entrer la note #1: 75
Veuillez entrer la note #2: 92
Veuillez entrer la note #3: 41
Veuillez entrer la note #4: 60
Veuillez entrer la note #5: 88

La moyenne est de: 71.20%

Numéro 7​

Écrire le code pour obtenir le résultat (exemple ci-dessous) à la console.

Demandez à l'utilisateur de saisir 3 nombres, nb1 et nb2 (des entiers) ainsi que nb4 (un réel), puis faites les calculs.

Exemple 1:

Veuillez saisir nb1, un entier: 7
Veuillez saisir nb2, un entier: 4
Veuillez saisir nb4, un réel: 4

La valeur de nb1 est 7
La valeur de nb2 est 4
La valeur de nb4 est 4.0
---------------------------------
7 + 4 = 11
7 - 4 = 3
7 * 4 = 28
7 / 4 = 1.75
7 / 4.0 = 1.75
7 // 4 = 1
7 // 4.0 = 1.0
7 % 4 = 3
7 % 4.0 = 3.0
---------------------------------
nb2 == nb4 : 4 == 4.0 : True
nb2 != nb4 : 4 != 4.0 : False
nb1 > nb2 : 7 > 4 : True
nb1 >= nb4 : 7 >= 4.0 : True
---------------------------------

Exemple 2:

Veuillez saisir nb1, un entier: 22
Veuillez saisir nb2, un entier: 3
Veuillez saisir nb4, un réel: 5.0

La valeur de nb1 est 22
La valeur de nb2 est 3
La valeur de nb4 est 5.0
---------------------------------
22 + 3 = 25
22 - 3 = 19
22 * 3 = 66
22 / 3 = 7.333333333333333
22 / 5.0 = 4.4
22 // 3 = 7
22 // 5.0 = 4.0
22 % 3 = 1
22 % 5.0 = 2.0
---------------------------------
nb2 == nb4 : 3 == 5.0 : False
nb2 != nb4 : 3 != 5.0 : True
nb1 > nb2 : 22 > 3 : True
nb1 >= nb4 : 22 >= 5.0 : True
---------------------------------

Numéro 8​

Demandez à l'utilisateur d'entrer un nombre, dites si ce nombre est:

  • Positif, négatif ou null
  • Pair ou impair

Exemples:

Veuillez entrer un nombre: -5
Le nombre -5 est négatif et impair

Veuillez entrer un nombre: 42
Le nombre 42 est positif et pair

Numéro 9​

Demandez 2 nombres à l'utilisateur, affichez les du plus petit au plus grand.

Veuillez saisir le nombre 1: 42
Veuillez saisir le nombre 2: -9
-9 42

Veuillez saisir le nombre 1: 0
Veuillez saisir le nombre 2: 9001
0 9001

Numéro 10​

Demandez à l'utilisateur s'il veut convertir du Fahrenheit vers le Celsius ou l'inverse, demandez ensuite une température puis faites la conversion. Affichez sur 2 décimales.

Voulez-vous convertir:
1: du Fahrenheit au Celsius
2: du Celsius au Fahrenheit
Veuillez saisir 1 ou 2: 1
Entrez une température en Fahrenheit: 72
Température en Celsius: 22.22

Voulez-vous convertir:
1: du Fahrenheit au Celsius
2: du Celsius au Fahrenheit
Veuillez saisir 1 ou 2: 2
Entrez une température en Celsius: 24
Température en Fahrenheit: 75.20

Numéro 11​

Demandez à l'utilisateur de choisir une opération mathématique (addition, multiplication, division et soustraction) puis de choisir 2 nombres. Affichez le résultat de l'opération choisie sur les 2 nombres, attention à la division par zéro, le programme ne doit pas planter!

Ajoutez aussi une validation en cas d'opérateur invalide.

Veuillez choisir une opération (+, -, *, /): +
Veuillez saisir le nombre 1: 5
Veuillez saisir le nombre 2: 8
5 + 8 = 13

Veuillez choisir une opération (+, -, *, /): /
Veuillez saisir le nombre 1: 42
Veuillez saisir le nombre 2: 0
Impossible de diviser par zéro

Veuillez choisir une opération (+, -, *, /): Non
Veuillez saisir le nombre 1: 0
Veuillez saisir le nombre 2: 0
Opération non-valide

Numéro 12​

Reprenez le numéro 10, mais l'utilisateur peut aussi choisir les degrés Kelvin. Il devra aussi choisir vers quelle unité il veut convertir. Affichez sur 2 décimales.

Les unités disponibles sont:
1 - Kelvin
2 - Celsius
3 - Fahrenheit
Veuillez choisir l'unité source (1, 2 ou 3): 2
Veuillez saisir la température source: 24
Veuillez choisir l'unité de destination (1, 2 ou 3): 1
297.15

Les unités disponibles sont:
1 - Kelvin
2 - Celsius
3 - Fahrenheit
Veuillez choisir l'unité source (1, 2 ou 3): 3
Veuillez saisir la température source: 72
Veuillez choisir l'unité de destination (1, 2 ou 3): 2
22.22

Analyse​

Voici 3 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 13​

Demandez l'année de naissance de l'utilisateur et affichez son âge en 2026.

anneeNaissance: str = input("Entrez votre année de naissance: ")
age: int = 2026 - anneeNaissance
print(age)

Numéro 14​

Demandez le prénom et le nom de l'utilisateur, puis affichez un message de bienvenue.

prenom = input("Prénom: ")
nom = input("Nom: ")
print("Nom: " + prenom + ", " + nom)

Numéro 15​

Demandez un prix à l'utilisateur, calculez et affichez la TPS (5%) sur ce prix.

prix: float = float(input("Prix: "))
tps: float = prix * 0.05
print(f"Taxe: {tps:.0f}$")

🔑 Corrigé disponible

Besoin de plus de pratique?​

Si vous avez de la difficulté et voulez pratiquer davantage, il y a un prompt différent par section, car le type d'exercice change (tracer du code, écrire un algorithme, analyser du code existant). Ouvrez l'accordéon correspondant à la section où vous bloquez, copiez-collez le prompt dans une IA, puis collez à la toute fin le Numéro qui vous donne de la difficulté au complet, aucune autre modification n'est nécessaire.

Vous bloquez plutôt sur un numéro précis et voulez seulement un indice? Utilisez le dernier accordéon.

Compréhension

Collez le prompt suivant (après Voici l'extrait de référence:), suivi du Numéro au complet:

Tu es un tuteur pour un cours d'introduction à la programmation Python (1re session de cégep).
Voici un extrait d'un atelier sur la lecture au clavier et l'affichage en console. Génère 3 nouveaux extraits de code à tracer, avec le même niveau de difficulté.

Contraintes:
- N'utilise que les concepts déjà vus: variables, types, opérateurs, if, if-else, if-elif, `print` (avec `sep` et `end`), les chaînes littérales (f-strings) et leurs spécificateurs de formatage (alignement, précision, remplissage).
- N'utilise pas de structures de données (list, dict, tuple, set), de boucles ou de fonctions: ce ne sont pas encore vus.
- Pour chaque extrait, demande-moi de prédire exactement ce qui sera affiché avant d'exécuter le code.
- Ne me donne PAS les réponses tout de suite, seulement les extraits, pour que je puisse essayer par moi-même.
- Si je te le redemande, donne-moi ensuite les réponses avec une explication pour chaque cas.

Voici l'extrait de référence:
Écriture

Collez le prompt suivant (après Voici l'exercice de référence:), suivi du Numéro au complet:

Tu es un tuteur pour un cours d'introduction à la programmation Python (1re session de cégep).
Voici un extrait d'un atelier sur la lecture au clavier et l'affichage en console. Génère 3 nouveaux exercices avec le même niveau de difficulté.

Contraintes:
- N'utilise que les concepts déjà vus: `input`, `int`, `float`, `print`, les chaînes littérales (f-strings) et leurs spécificateurs de formatage, les opérateurs et les if.
- N'utilise pas de structures de données (list, dict, tuple, set), de boucles ou de fonctions: ce ne sont pas encore vus.
- Pour chaque exercice, donne un énoncé et un exemple d'exécution en console (ce que l'utilisateur saisit et ce qui s'affiche), comme dans l'atelier.
- Ne me donne PAS les réponses tout de suite, seulement les exercices, pour que je puisse essayer par moi-même.
- Si je te le redemande, donne-moi ensuite le corrigé avec une explication.

Voici l'exercice de référence:
Analyse

Collez le prompt suivant (après Voici l'exemple de référence:), suivi du Numéro au complet:

Tu es un tuteur pour un cours d'introduction à la programmation Python (1re session de cégep).
Voici un extrait d'un atelier qui présente du code Python avec une solution déjà écrite, utilisant `input` et `print`. Génère 3 nouveaux exemples avec le même niveau de difficulté.

Contraintes:
- N'utilise que les concepts déjà vus: `input`, `int`, `float`, `print`, les chaînes littérales (f-strings), les opérateurs et les if.
- N'utilise pas de structures de données (list, dict, tuple, set), de boucles ou de fonctions: ce ne sont pas encore vus.
- Pour chaque exemple, donne un énoncé et une solution en Python. Certaines solutions doivent contenir une erreur plausible liée à `input` (ex. oublier une conversion de type) ou au formatage (ex. mauvais spécificateur, arrondi qui perd de la précision), d'autres doivent fonctionner mais contenir de la répétition ou une amélioration possible (ex. concaténation manuelle au lieu d'une chaîne littérale).
- Ne me dis PAS ce qui est erroné ou améliorable tout de suite, seulement les exemples, pour que je puisse les analyser par moi-même.
- Si je te le redemande, donne-moi ensuite l'explication pour chaque exemple.

Voici l'exemple de référence:
Besoin d'un indice plutôt que d'un nouvel exercice?

Collez le prompt suivant (après Voici l'énoncé:), suivi du Numéro au complet:

Tu es un tuteur pour un cours d'introduction à la programmation Python (1re session de cégep).
Je bloque sur l'exercice suivant. Ne me donne PAS la solution complète.

Donne-moi seulement un indice ou la première étape pour m'aider à démarrer, sans écrire le code complet. Si je te le redemande, donne-moi l'étape suivante, une seule à la fois.

Voici l'énoncé: