Hoe invoer als gehele getallen in Python te lezen

  1. Lees gebruikersinvoer als gehele getallen in Python 2.x
  2. Lees gebruikersinvoer als gehele getallen in Python 3.x

Lees gebruikersinvoer als gehele getallen in Python 2.x

Python 2.7 heeft twee functies om de gebruikersinvoer te lezen, namelijk raw_input en input.

raw_input leest de gebruikersinvoer als een ruwe string en de retourwaarde is eenvoudig string.

input krijgt de invoer van de gebruiker en evalueert vervolgens de string en het resultaat van de evaluatie wordt geretourneerd.

Bijvoorbeeld,

>>> 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'>)

Waarschuwing

Overweeg twee keer wanneer u input in Python 2.x gebruikt. Het kan beveiligingsproblemen veroorzaken, omdat input het gebruikerstypen evalueert.

Stel dat u al os in uw programma hebt geïmporteerd en vervolgens wordt gevraagd om gebruikersinvoer,

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

Uw invoer os.remove(*.*) wordt geëvalueerd en verwijdert alle bestanden in uw werkwoordenboek zonder enige kennisgeving!

Lees gebruikersinvoer als gehele getallen in Python 3.x

raw_input is verouderd in Python 3.x en wordt vervangen door input in Python 3.x. Het krijgt alleen de tekenreeks van de gebruiker maar evalueert de tekenreeks niet vanwege het beveiligingsrisico zoals hierboven beschreven.

Daarom moet u de gebruikersinvoer van de tekenreeks expliciet converteren naar gehele getallen.

>>> number = int(input("Enter a number: "))
Enter a number: 123
>>> number
123