HOWTO · Python

Beheben Sie den Namensfehler: Eingabename ist in Python nicht definiert

In Python, unter Version 3.0, gab es zwei eingebaute Methoden, um die Eingabe des Benutzers entgegenzunehmen. Eine war die Input-Funktion und die andere war die raw_input-Funktion. Aber später, in den 3.X-Versionen, wurden beide kombiniert und zu einer einzigen Eingabefunktion gemacht.

Auf dieser Seite

In den Python-Versionen 2.7 und 2.x waren die Funktionen raw_input() und input() die beiden integrierten Funktionen, um die Eingabe des Benutzers entgegenzunehmen. Aber in den späteren Versionen von Python 3.0 wurde die raw_input() in input() umbenannt, die jetzt immer noch verwendet wird.

Beheben Sie den NameError: input name is not defined in Python

In der älteren Version von Python wurde die Funktion input verwendet, um den Python-Ausdruck auszuwerten, aber wenn Sie Strings lesen möchten, dann wurde dafür die Funktion raw_input verwendet. Aber jetzt wird die Funktion raw_input in Eingabe umbenannt, sodass sie in 3.x-Versionen von Python nicht funktioniert.

Lassen Sie es uns anhand eines Beispiels verstehen.

Für dieses Thema verwenden wir Python Version 2.7. Wenn Sie dies auf der 3.x-Version von Python verwenden, wird dieser Code ohne Fehler ausgeführt.

# Python 2.7 version
name = input("Hi! What is your good name? ")
print("Nice to meet you " + name)

Ausgang:

NameError: name 'Zeeshan' is not defined

Der obige Code hat einen Namensfehler verursacht, da die Eingabe in der älteren Version von Python nicht zum Lesen der Zeichenfolge, sondern zum Auswerten des Python-Ausdrucks verwendet wurde. Und um diesen Namensfehler zu beheben, können wir die Funktion raw_input verwenden, da sie zum Lesen von Zeichenfolgen erstellt wurde.

Lassen Sie uns den Namensfehler mit der Funktion raw_input beheben.

name = raw_input("Hi! What is your good name? ")
print("Nice to meet you " + name)

Ausgang:

Hi! What is your good name? Nice to meet you Zeeshan

Wie Sie sehen können, hat die Funktion raw_input den Namensfehler behoben und das Programm reibungslos ausgeführt.