Lire des données au clavier
Lire des données au clavier
Objectifs cantonaux : O1.6.
Cours complet sur la plateforme Runestone de Cédric Donner : Lire des données au clavier.
Jusqu’ici, tous vos programmes faisaient toujours exactement la même chose à chaque exécution : les valeurs (tailles, couleurs, nombre de côtés…) étaient écrites une fois pour toutes dans le code. Ce n’est pas très réaliste : un programme utile doit pouvoir s’adapter à ce que l’utilisateur veut faire, sans que le programmeur puisse tout prévoir à l’avance.
▷ Entrée standard / sortie standard
- La sortie standard est la fenêtre où le programme affiche des messages avec
print(...). - L’entrée standard est le mécanisme par lequel l’utilisateur saisit des données au clavier, que le programme peut lire avec
input(...).
La commande input(message)
◈ Syntaxe — input
variable = input("message affiché à l'utilisateur")input(message) affiche message, puis met le programme en pause jusqu’à ce que l’utilisateur tape une valeur et valide (touche Entrée). La fonction input() retourne la valeur saisie, qu’on peut stocker dans une variable pour l’utiliser dans la suite du programme.
! input() retourne toujours du texte
Même si l’utilisateur tape "5", input() retourne la chaîne de caractères "5", pas le nombre 5. Pour obtenir un nombre utilisable dans un calcul, il faut convertir explicitement :
nombre_entier = int(input("Un nombre entier : "))
nombre_decimal = float(input("Un nombre décimal : "))Exemple — dessiner n’importe quel polygone
from gturtle import *
def polygone(taille, nb_cotes, couleur):
setPenColor(couleur)
for _ in range(nb_cotes):
forward(taille)
right(360 / nb_cotes)
# lecture des données saisies par l'utilisateur
taille = float(input("Longueur des côtés : "))
nb_cotes = int(input("Nombre de côtés : "))
couleur = input("Couleur du polygone : ")
polygone(taille, nb_cotes, couleur)Ce même programme peut désormais dessiner n’importe quel polygone, de n’importe quelle taille et couleur, sans qu’on ait besoin de modifier le code : c’est l’utilisateur qui choisit au moment de l’exécution.
! Où placer l’appel à input() ?
Il ne faut pas cacher l’appel à input() à l’intérieur d’une fonction comme polygone(...) : cette fonction doit continuer à recevoir ses valeurs par ses paramètres (taille, nb_cotes, couleur). C’est le programme principal qui lit les valeurs saisies, les stocke dans des variables, puis les transmet à la fonction en paramètres.
Les mains à la pâte
- Reprenez un programme de double escalier déjà écrit précédemment et modifiez-le pour que l’utilisateur puisse choisir le nombre de marches au moment de l’exécution.
- Écrivez un programme qui demande à l’utilisateur son nom, son prénom et où il habite, puis affiche un message de bienvenue personnalisé, par exemple avec des f-strings :
nom = input("Quel est ton nom ? ")
prenom = input("Quel est ton prénom ? ")
lieu = input("Où habites-tu ? ")
print(f"Bonjour {prenom} {nom}, heureux de faire ta connaissance.")
print(f"Je vois que tu habites à {lieu}.")