Heim >Backend-Entwicklung >Python-Tutorial >Warum erhalte ich einen NameError, wenn ich die Eingabefunktion von Python verwende?
NameError: Name „Eingabevariable“ ist bei Verwendung der Eingabefunktion nicht definiert
In Python können Sie mit der Eingabefunktion Benutzereingaben erfassen. Wenn Sie jedoch bei der Verwendung der Eingabefunktion auf einen NameError stoßen, untersucht dieser Artikel die Ursache und bietet Lösungen.
Python 2.7 vs. 3.x
In Python 2.7 gab es zwei Funktionen für die Eingabe: input und raw_input. Die Eingabefunktion wertet die Eingabe als Python-Ausdruck aus, während raw_input die Eingabe einfach als Zeichenfolge erfasst.
In Python 3.x wurde raw_input in Eingabe umbenannt. Allerdings verhält sich die neue Eingabefunktion jetzt wie die alte raw_input, liest eine Zeile aus der Standardeingabe und gibt sie als String zurück.
Fehlerbehebung bei NameError in Python 2.7
Wenn Sie bei Verwendung der Eingabefunktion in Python 2.7 einen NameError erhalten, deutet dies darauf hin, dass die Variable, der Sie die Eingabe zuweisen möchten, in der nicht vorhanden ist aktueller Python-Kontext. Der Namensfehler tritt auf, wenn Sie versuchen, die Eingabe als Python-Ausdruck auszuwerten, aber aufgrund einer undefinierten Variablen fehlschlagen.
Sicherheitsüberlegungen in Python 2.7
Die Fähigkeit des Auch die Eingabefunktion zur Auswertung von Benutzereingaben stellt ein Sicherheitsrisiko dar. Wenn Ihr Skript Module mit erhöhten Rechten lädt, können Benutzereingaben, die bösartigen Code enthalten, Ihr System gefährden.
Lösung
Um den NameError zu verhindern und Sicherheitsrisiken zu mindern, verwenden Sie raw_input Funktion stattdessen in Python 2.7. Diese Funktion erfasst die Eingabe einfach als Zeichenfolge, ohne sie auszuwerten. Wenn Sie die Eingabe in einen bestimmten Datentyp konvertieren müssen, können Sie entsprechende Funktionen wie int() für Ganzzahlen verwenden.
In Python 3.x können Sie die Eingabefunktion verwenden, die sich jetzt verhält wie raw_input in Python 2.7.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich einen NameError, wenn ich die Eingabefunktion von Python verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!