Comment lire les entrées de l'utilisateur comme des entiers en Python
- Lire les entrées de l’utilisateur sous forme d’entiers en Python 2.x
- 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'>)
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
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook