Révisions - Entrées utilisateur#
Qu'est-ce qu'une entrée utilisateur ?#
Dans les programmes que nous avons écrits jusqu'à présent, l'utilisateur n'avait jamais son mot à dire sur ce qu'il se passait : il cliquait sur Play et voyait le résultat s'afficher. Toutefois, dans la grande majorité des programmes, l'utilisateur doit pouvoir interagir avec le programme avec son clavier, sa souris, sa manette de jeu, son microphone, etc. Toutes ces interactions que l'utilisateur peut avoir avec le programme durant son exécution sont appelées des entrées utilisateur. Dans ce cours, nous n'allons traiter qu'un seul type d'entrée utilisateur : l'écriture de texte au clavier.
La fonction input#
Pour que l'utilisateur puisse écrire une valeur au clavier durant l'exécution du programme, on utilise la fonction input(). Entre ses parenthèses, on met le texte à afficher à l'utilisateur pour lui indiquer ce qu'il doit écrire. Finalement, l'entrée de l'utilisateur doit être enregistrée dans une variable. De ce fait, le input() est toujours mis comme la valeur d'une variable, c'est-à-dire sous la forme variable = input(). L'exemple ci-dessous permet par exemple de demander le prénom de l'utilisateur, puis de le saluer.
1prénom = input("Quel est votre prénom ?")
2print("Bonjour", prénom)
Fonctions de conversion de types#
Lorsque l'utilisateur doit entrer une valeur numérique (c'est-à-dire une valeur int ou float), la fonction input() doit être contenue dans la fonction de conversion int() ou float() correspondante comme ci-dessous
1nb_invités = int(input("Combien de personnes sont invitées ?"))
2prix_par_personne = float(input("Quel est le prix en CHF par personne ?"))
3total = nb_invités * prix_par_personne
4print("Le prix total est de", total, "CHF")
Exercices de révision#
Exercice 8#
Chacun des programmes suivants comporte au moins une erreur. Parfois, cette erreur fait directement buguer le programme avec un message d'erreur rouge. D'autres fois, le programme s'exécute correctement, mais son résultat n'est pas logique.
Corrigez chacun de ces codes de manière à ce qu'ils s'exécutent correctement et affichent un résultat logique.
1input("Comment t'appelles-tu ?") 2print("Bonjour", prénom)
1ville = input(Où habites-tu) 2print("Moi aussi j'habite à", ville, "!")
1année_collège = input("En quelle année du collège es-tu ?") 2print("Encore", 4 - année_collège, " an(s) avant d'avoir ta matu !")
1#Essayez avec la note 4.5 2note = int(input("Quelle est ta dernière note en informatique ?")) 3print("Ta dernière note d'informatique est", note)
Solution
1prénom = input("Comment t'appelles-tu ?") 2print("Bonjour", prénom)
1ville = input("Où habites-tu") 2print("Moi aussi j'habite à", ville, "!")
1année_collège = int(input("En quelle année du collège es-tu ?")) 2print("Encore", 4 - année_collège, " an(s) avant d'avoir ta matu !")
1#Essayez avec la note 4.5 2note = float(input("Quelle est ta dernière note en informatique ?")) 3print("Ta dernière note d'informatique est", note)
Exercice 9#
Écrivez un programme Python demandant à l'utilisateur son nom, son prénom, ainsi que la ville ou le village dans laquelle il/elle habite. Ce programme affichera ensuite un texte saluant l'utilisateur correctement. Le programme devrait se dérouler de la manière suivante :
Quel est ton nom?
Quel est ton prénom?
Où habites-tu?
Bonjour {afficher le prénom} {afficher le nom}, heureux de faire ta connaissance.
Je vois que tu habites à {afficher le lieu}.
1#Ecrivez votre code ici
Solution
1nom = input("Quel est votre nom ?")
2prenom = input("Quel est votre prénom ?")
3ville = input("Où habitez-vous ?")
4print("Bonjour", prenom, nom + ", heureux de faire ta connaissance.")
5print("Je vois que tu habites à", ville)
Exercice 10#
Complétez ce programme permettant de calculer l'aire et le périmètre d'un rectangle en fonction des valeurs en centimètre demandées à l'utilisateur. Testez ce programme avec les valeurs 3.4 et 6.1. Dans ce cas, le programme devrait afficher L'aire vaut 20.74 cm2 et Le périmètre vaut 19.0 cm.
1# Complétez le programme
2largeur = input()
3longueur = input()
4aire =
5périmètre =
6print("L'aire vaut")
7print("Le périmètre vaut")
Solution
1# Ne pas oublier de convertir les inputs en float
2largeur = float(input("Quelle est la largeur du rectangle en cm ?"))
3longueur = float(input("Quelle est la longueur du rectangle en cm ?"))
4
5# Calcul de l'aire et du périmètre
6aire = largeur * longueur
7périmètre = 2 * (largeur + longueur)
8
9# Affichage des réponses
10print("L'aire vaut", aire, "cm2")
11print("Le périmètre vaut", périmètre, "cm")
Exercice 11#
Écrivez un programme permettant de convertir des degrés Fahrenheit en degrés Celsius. Pour une température en Fahrenheit \(F\), on trouve son équivalent en Celsius \(C\) avec la formule :
L'exécution du programme devrait ressembler à cela :
Quelle température en Fahrenheit souhaitez-vous convertir ?
Merci, xxx °F équivalent à yyy °C
Vous pouvez vérifier votre programme en contrôlant que 60.2°F valent bien 15.666666666666668°C et que 100°F valent 37.77777777777778°C. Ces longues suites de décimales sont normales : c'est ainsi que Python affiche le résultat d'une division.
1#Ecrivez votre code ici
Solution
1fahrenheit = float(input("Quelle température en F souhaitez-vous convertir ?"))
2celsius = (fahrenheit - 32) / 1.8
3print("Merci,", fahrenheit, "°F équivaut à", celsius, "°C")
Exercice 12#
Ecrivez un programme permettant de calculer les quantités requises pour une recette de cake au citron. Les quantités dans le début de programme ci-dessous sont pour une personne. De plus, le programme laissera l'utilisateur choisir la quantité de sucre (en kg) qu'il souhaite mettre dans son cake. Le programme final affichera donc les textes suivants.
Combien de kg de sucre souhaitez-vous ajouter par cake ?
Combien de cakes voulez-vous faire ?
Vous avez besoin de :
- xxx oeufs
- yyy citrons
- zzz kg de farine
- www kg de sucre.
1nb_oeufs = 2
2nb_citrons = 3
3kg_farine = 0.2
4kg_sucre = #Continuez ici
Solution
1nb_oeufs = 2
2nb_citrons = 3
3kg_farine = 0.2
4kg_sucre = float(input("Combien de kg de sucre souhaitez-vous ajouter par cake ?"))
5nb_cakes = int(input("Combien de cakes voulez-vous faire ?"))
6
7print("Vous avez besoin de :")
8
9print(" -", nb_oeufs * nb_cakes, "oeufs")
10print(" -", nb_citrons * nb_cakes, "citrons")
11print(" -", kg_farine * nb_cakes, "kg de farine")
12print(" -", kg_sucre * nb_cakes, "kg de sucre")