Atelier 4 - Lecture au clavier
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)
- Déterminez exactement ce qui sera affiché, ligne par ligne.
- 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}")
- Déterminez exactement ce qui sera affiché, ligne par ligne.
- 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}$")
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é: