Heim > Backend-Entwicklung > Python-Tutorial > Warum gibt Pythons „input()' Strings statt Ganzzahlen zurück?

Warum gibt Pythons „input()' Strings statt Ganzzahlen zurück?

Patricia Arquette
Freigeben: 2024-12-23 15:18:18
Original
988 Leute haben es durchsucht

Why Does Python's `input()` Return Strings Instead of Integers?

Warum x und y Zeichenfolgen statt Ganzzahlen erhalten

Beim Ausführen des bereitgestellten Codes, insbesondere der Zeilen x = input("Geben Sie eine Zahl ein : ") und y = input("Geben Sie eine Zahl ein: ") wird der Benutzer aufgefordert, Werte einzugeben, die dann in x und y als Zeichenfolgen gespeichert werden als ganze Zahlen.

Grund für dieses Verhalten

Dieses Verhalten entsteht durch die Verarbeitung von Eingaben durch Python in verschiedenen Versionen. In Python 3, wo der bereitgestellte Code wahrscheinlich ausgeführt wird, gibt die Funktion input() den eingegebenen Wert standardmäßig als Zeichenfolge zurück. Um diese Zeichenfolge in eine Ganzzahl umzuwandeln, ist eine explizite Umwandlung erforderlich, wie im geänderten Code unten zu sehen ist:

x = int(input("Enter a number: "))
y = int(input("Enter a number: "))
Nach dem Login kopieren

Umgang mit unterschiedlichen Zahlenbasen

Python bietet eine vielseitige Möglichkeit Ansatz zur Annahme von Zahlen verschiedener Basen. Die Verwendung der entsprechenden Basis beim Umwandeln, wie unten gezeigt, ermöglicht die Interpretation von Zahlen in verschiedenen Basiswerten:

data = int(input("Enter a number: "), 8)  # Converts to base 8 (octal)
data = int(input("Enter a number: "), 16)  # Converts to base 16 (hexadecimal)
data = int(input("Enter a number: "), 2)  # Converts to base 2 (binary)
Nach dem Login kopieren

Konvertierung in Float für Bruchwerte

Für Werte, die kann gebrochene Komponenten enthalten, es ist sinnvoll, sie in Gleitkommazahlen statt in Ganzzahlen umzuwandeln. Dies kann mit der folgenden Syntax erreicht werden:

x = float(input("Enter a number:"))
Nach dem Login kopieren

Unterscheidungsmerkmale zwischen Python 2 und 3

Zusammenfassung

Die wichtigsten Unterschiede zwischen Python 2 und 3 in Bezug auf Benutzereingaben sind:

  • Die Eingabefunktion von Python 2 hat die empfangenen Daten ausgewertet und implizit in eine Ganzzahl konvertiert, während die Eingabefunktion von Python 3 sie standardmäßig als Zeichenfolge zurückgibt.
  • Python 2 bietet beides die Funktionen input und raw_input, während Python 3 nur über diese Funktionen verfügt Eingabe.

Python 2.x-Verhalten

  • Eingabe wertete den eingegebenen Ausdruck aus und gab das Ergebnis als entsprechenden Typ zurück (z. B. Ganzzahl oder Zeichenfolge). ).
  • raw_input hat die Eingabe als Zeichenfolge ohne abgerufen Interpretation.

Python 3.x-Verhalten

  • Eingabe funktioniert ähnlich wie raw_input von Python 2 und gibt die Eingabe als Zeichenfolge zurück.

Potenzielle Gefahren bei der Python 2.x-Eingabe Funktion

Bei der Verwendung der Eingabefunktion in Python 2.x ist es wichtig, auf deren automatische Auswertung zu achten, da sie zu unbeabsichtigtem Verhalten führen kann, z. B. zur Ermöglichung der Ausführung von Schadcode.

Das obige ist der detaillierte Inhalt vonWarum gibt Pythons „input()' Strings statt Ganzzahlen zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage