Entrées Utilisateur
Aperçu
Questions
Comment recevoir des entrées textuelles de l’utilisateur ?
Comment recevoir des entrées numériques de l’utilisateur ?
Objectifs
Comprendre la notion de paramètres d’un programme.
Savoir comment, dans un programme, demander à l’utilisateur de taper une chaîne de caractères.
Savoir convertir des chaînes de caractères en entier ou réel, et vice-versa.
Multiplication de ce qui est tapé !
Écrire un programme qui demande à l’utilisateur « Entrez un nombre : », puis affiche exactement ce qui a été entré multiplié par l’entier 5.
Que se passe-t-il quand l’utilisateur tape
123
? et quand il tapeHey
? pourquoi ?Solution
v = input("Entrez un nombre : ") print(v * 5)
Quand l’utilisateur tape
123
, le programme affiche123123123123123
?! et il afficheHeyHeyHeyHeyHey
quand l’utilisateur tapeHey
.Input renvoie toujours une chaîne de caractères donc
123
est une chaîne comme si on avait écrit dans le programmev = "123"
. La multiplication d’une chaîne par un nombre entier permet de répéter la chaîne (ici 5 fois). Le comportement est donc normal et attendu.
Points Clés
Quand on lance un programme il est possible d’y ajouter des paramètres, par exemple,
python3 monprogramme.py toto 42
.La variable
argv
contenue dans le modulesys
permet d’accéder au paramètres du programme.On peut accéder au nom du fichier python avec
sys.argv[0]
(qui vautmonprogramme.py
dans l’exemple).On peut accéder au premier paramètre du programme avec
sys.argv[1]
(qui vauttoto
dans l’exemple).Avec
len(sys.argv)
on obtient un nombre entier contenant le nombre de paramètres + 1 (ce 1 vient du fait que l’on a aussi accès au nom du fichier python).Dans un programme, la fonction
input()
attend que l’utilisateur tape une ligne de texte au clavier et renvoie ce qui a été tapé.La fonction
input(…)
peut accepter un paramètre appelé le prompt, c’est à dire qu’il sera affiché pour inciter l’utilisateur à taper.Il faut bien comprendre la distinction entre les paramètres d’un programme (dans
sys.argv
) et la fonctioninput
.Les paramètres sont des chaînes de caractères.
Dans tous les cas
input(…)
renvoie une chaîne de caractères.On peut convertir une valeur en entier avec
int(…)
, en flottant avecfloat(…)
ou en chaîne de caractères avecstr(…)
(pour string).