raw_input-python

Python 3 hat die Methode raw_input() von Python 2 durch die Methode input() ersetzt. Wenn Sie versuchen, raw_input() in Python 3 zu verwenden, stoßen Sie auf den NameError: name ‘raw_input’ ist nicht definiert-Fehler.

In diesem Leitfaden werden wir erläutern, was dieser Fehler bedeutet und warum er auftreten kann. Wir werden ein Beispiel fur diesen Fehler mit einer Lösung durchgehen, damit Sie lernen, wie Sie den Fehler beheben können.

NameError: name ‘raw_input’ ist nicht definiert

Die raw_input()-Funktion in Python 2 sammelt eine Eingabe von einem Benutzer. Diese Eingabe kann in einen beliebigen Datentyp konvertiert werden, z. B. in eine Zeichenfolge, eine Ganzzahl oder eine Gleitkommazahl.

Betrachten Sie diesen Code:

username = raw_input("Geben Sie einen Benutzernamen ein: ‚")

Mit diesem Code können wir einen Benutzernamen von einem Benutzer in Python 2 erfassen.

In der Lage zu sein, eine Eingabe von einem Benutzer zu sammeln, bedeutet, dass Sie Ihre Programme interaktiv gestalten können. Sie mussen nicht nur alle Daten in dem Programm definieren, das Sie verwenden werden. Sie können einen Benutzer bitten, einige Daten bereitzustellen.

In Python 3 wurden viele √Ñnderungen an der Python-Sprache vorgenommen. Darunter ist raw_input(), die in input() umbenannt wurde. Beide Funktionen sammeln Daten aus sys.stdin (auch bekannt als "Standardeingabe‚") und geben diese Daten an ein Programm zuruck.

81 % der Teilnehmer gaben an, dass sie das Gefuhl hatten nach dem Besuch eines Bootcamps zuversichtlicher in Bezug auf ihre Berufsaussichten im Tech-Bereich. Lassen Sie sich noch heute in ein Bootcamp einweisen.

Der durchschnittliche Bootcamp-Absolvent verbrachte weniger als sechs Monate im Karriereubergang, vom Beginn eines Bootcamps bis zur Suche nach seinem ersten Job.

Wir werden bauen ein Programm, das die Note berechnet, die ein Schuler fur seine Kunstaufgabe erhalten hat. Die Aufgabe besteht aus 50 und die Schuler können entweder die Note A, B, C oder Fail erhalten. Bitten Sie unseren Benutzer zunächst, eine Note einzugeben, deren Buchstabennote wir berechnen:

numerical_grade = int(raw_input("Geben Sie eine Note ein: ‚"))

Wir verwenden raw_input(), um eine Note vom Benutzer einzuholen. Der Benutzer muss eine Note in unser Programm eingeben, bevor der Rest unseres Programms ausgefuhrt wird. Wir konvertieren Sie den von einem Benutzer eingegebenen Wert in eine ganze Zahl, damit wir später in unserem Code numerische Vergleiche durchfuhren können. Dies liegt daran, dass raw_input() standardmäßig einen String zuruckgibt.

Wir werden eine if-Anweisung verwenden, um die entsprechende Buchstabennote zu berechnen:

Wir verwenden ein if, zwei elif, und eine else-Anweisung, um die Note zu berechnen, die ein Schuler basierend auf der numerischen Note erhalten hat, die der Benutzer in das Programm eingegeben hat.

Unser letzter Schritt besteht darin, Drucken Sie eine Nachricht an die Konsole, die den Benutzer uber die Ergebnisse unserer Berechnung informiert:

Diese Aussage zeigt sowohl den Buchstaben als auch die numerische Note an, die ein Schuler erhalten hat.

Lassen Sie unseren Code ausfuhren und sehen, was passiert:

Unser Code gibt einen Fehler zuruck.

Die Lösung

Die Fehlermeldung sagt uns, dass wir auf einen Wert verweisen, der nicht existiert. Da wir Python 3.x verwenden, um unser Programm auszufuhren, existiert raw_input() nicht.

Um unseren Code zu reparieren, mussen wir unseren . ersetzen raw_input() Anweisung mit einer input()-Anweisung:

Sowohl die Anweisungen raw_input() als auch input() sind funktionell gleich. Das bedeutet, dass wir keine weiteren Änderungen an unserem Code vornehmen mussen, um unsere Codebasis mit Python 3.x kompatibel zu machen.

Lassen Sie unser Programm mit dieser Änderung ausfuhren:

Unser Code berechnet erfolgreich die Note eines Schulers.

Hinweis zur Neuzuweisung der raw_input-Funktion

Eine technisch funktionierende Lösung besteht darin, der Funktion input() den Wert von raw_input() zuzuweisen. Dies können wir mit Variablenzuweisung. Dadurch können Sie eine Funktion namens raw_input() in Ihrem Python 3-Code verwenden.

Beachten Sie dieses Beispiel:

raw_input = input

Diese Anweisung teilt Python mit, dass der Wert von raw_input() sollte gleich input() sein.

"Karriere-Karma trat in mein Leben ein, als ich ne eded es am meisten und half mir schnell, mit einem Bootcamp zusammenzupassen. Zwei Monate nach meinem Abschluss habe ich meinen Traumjob gefunden, der meinen Werten und Lebenszielen entspricht!"

Venus, Software Engineer bei Rockbot

Dies ist keine gute Lösung, da die offizielle Python 3-Dokumentation den Namen raw_input() zugunsten von input() abgeschafft hat. Einige Entwickler, die Ihren Code lesen, sind möglicherweise verwirrt, wenn sie raw_input() in einer Python 3-Codebasis sehen, wodurch die Entwicklungszeit verlangsamt wird.

Schlussfolgerung

Der NameError: name ‘ raw_input’ist nicht definiert Fehler wird ausgelöst, wenn Sie versuchen, die Methode raw_input() in Python 3 zu verwenden. Um diesen Fehler zu beheben, ersetzen Sie alle Instanzen von raw_input() durch die Funktion input() in Ihrem Programm.

Jetzt haben Sie das Wissen, das Sie benötigen, um diesen Fehler wie ein professioneller Python-Programmierer zu beheben!