Wie man Benutzereingaben als Ganzzahlen in Python einliest

Jinku Hu 30 Januar 2023
  1. Lesen von Benutzereingaben als Ganzzahlen in Python 2.x
  2. Liest Benutzereingaben als Ganzzahlen in Python 3.x
Wie man Benutzereingaben als Ganzzahlen in Python einliest

In diesem Tutorial werden wir lernen, wie man Benutzereingaben als ganze Zahlen in Python lesen kann.

Lesen von Benutzereingaben als Ganzzahlen in Python 2.x

Python 2.7 hat zwei Funktionen, um die Benutzereingaben zu lesen, nämlich raw_input und input.

raw_input liest die Benutzereingabe als rohen String und sein Rückgabewert ist einfach string.

input holt die Benutzereingabe und wertet dann den String aus und das Ergebnis der Auswertung wird zurückgegeben.

Zum Beispiel,

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

Überlegen Sie es sich zweimal, wenn Sie input in Python 2.x benutzen. Es könnte Sicherheitsprobleme aufwerfen, weil input alle Benutzertypen auswertet.

Nehmen wir an, Sie haben bereits os in Ihr Programm importiert und dann fragt es nach Benutzereingaben,

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

Ihre Eingabe os.remove(*.*) wird ausgewertet und löscht alle Dateien in Ihrem ArbeitsDictionary ohne Vorankündigung!

Liest Benutzereingaben als Ganzzahlen in Python 3.x

raw_input ist in Python 3.x veraltet und wird in Python 3.x durch input ersetzt. Es bekommt nur den String der Benutzereingabe, wertet den String aber wegen des oben beschriebenen Sicherheitsrisikos nicht aus.

Daher müssen Sie die Benutzereingabe explizit von der Zeichenkette in Ganzzahlen konvertieren.

>>> number = int(input("Enter a number: "))
Enter a number: 123
>>> number
123
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Verwandter Artikel - Python Input