Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Licence CC BY-NC-ND Thierry Parmentelat & Arnaud Legout Inria - UCA

Complément - niveau basique

Occasionnellement, il peut être utile de poser une question à l’utilisateur.

La fonction input

C’est le propos de la fonction input. Par exemple :

# à nouveau ceci n'est pas indispensable mais
# pour la production du PDF il nous faut ruser un peu...

nom_ville = "Nancy"
# et à nouveau ceci n'est pas exécuté pendant 
# la production du PDF parce que c'est bloquant

nom_ville = input("Entrez le nom de la ville : ")
print(f"nom_ville={nom_ville}")
nom_ville=Nancy

Attention à bien vérifier/convertir

Notez bien que input renvoie toujours une chaîne de caractères (str). C’est assez évident, mais il est très facile de l’oublier et de passer cette chaîne directement à une fonction qui s’attend à recevoir, par exemple, un nombre entier, auquel cas les choses se passent mal :

>>> input("nombre de lignes ? ") + 3
nombre de lignes ? 12
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: must be str, not int

Dans ce cas il faut appeler la fonction int pour convertir le résultat en un entier :

int(input("Nombre de lignes ? ")) + 3

Limitations

Cette fonction peut être utile pour vos premiers pas en Python.

En pratique toutefois, on utilise assez peu cette fonction, car les applications “réelles” viennent avec leur propre interface utilisateur, souvent graphique, et disposent donc d’autres moyens que celui-ci pour interagir avec l’utilisateur.

Les applications destinées à fonctionner dans un terminal, quant à elles, reçoivent traditionnellement leurs données de la ligne de commande. C’est le propos du module argparse que nous avons déjà rencontré en première semaine.