Comment lire les entrées de l'utilisateur comme des entiers en Python

  1. Lire les entrées de l’utilisateur sous forme d’entiers en Python 2.x
  2. Lire les entrées de l’utilisateur comme des entiers en Python 3.x

Dans ce tutoriel, nous allons apprendre à lire les entrées de l’utilisateur sous forme d’entiers en Python.

Lire les entrées de l’utilisateur sous forme d’entiers en Python 2.x

Python 2.7 a deux fonctions pour lire les entrées de l’utilisateur, c’est-à-dire raw_input et input.

raw_input lit l’entrée utilisateur comme une chaîne brute et sa valeur de retour est simplement string.

input récupère l’entrée utilisateur et ensuite évalue la chaîne et le résultat de l’évaluation est retourné.

Par exemple,

>>> number = raw_input("Enter a number: ")
Enter a number: 1 + 1
>>> number, type(number)
('1 + 1', <type 'str'>)

>>> number = input("Enter a number: ")
Enter a number: 1 + 1
>>> number, type(number)
(2, <type 'int'>)
Avertissement

Réfléchissez deux fois lorsque vous utilisez input en Python 2.x. Cela pourrait imposer des problèmes de sécurité car input évalue tous les types d’utilisateurs.

Disons que vous avez déjà importé os dans votre programme et qu’ensuite il demande une entrée utilisateur,

>>> number = input("Enter a number: ")
Enter a number: os.remove(*.*)

Votre entrée os.remove(*.*) est évaluée et elle efface tous les fichiers de votre dictionnaire de travail sans aucun préavis !

Lire les entrées de l’utilisateur comme des entiers en Python 3.x

raw_input est obsolète en Python 3.x et il est remplacé par input en Python 3.x. Il ne reçoit que la chaîne d’entrée de l’utilisateur mais ne l’évalue pas à cause du risque de sécurité comme décrit ci-dessus.

Par conséquent, vous devez explicitement convertir l’entrée utilisateur de la chaîne de caractères en nombres entiers.

>>> number = int(input("Enter a number: "))
Enter a number: 123
>>> number
123
comments powered by Disqus