input (): "NameError: name 'n' ist nicht definiert" [duplizieren]

8

Ok, also schreibe ich in python einen Code für die Prüfung der Noten und mein Code ist:

%Vor%

Wenn ich es durch meinen Python-Compiler führe und ich "n" wähle, erhalte ich eine Fehlermeldung, die besagt:

  

"NameError: Name 'n' ist nicht definiert"

und wenn ich "y" wähle, bekomme ich ein anderes NameError mit 'y' , aber wenn ich etwas anderes mache, läuft der Code normal.

Jede Hilfe wird sehr geschätzt,

Danke.

    
Cal Courtney 01.07.2013, 20:53
quelle

2 Antworten

16

Verwenden Sie raw_input in Python 2, um eine Zeichenfolge zu erhalten, input in Python 2 entspricht eval(raw_input) .

%Vor%

Also, wenn Sie etwas wie n in input eingeben, denken Sie, dass Sie nach einer Variablen namens n suchen:

%Vor%

raw_input funktioniert gut:

%Vor%

Hilfe zu raw_input :

%Vor%

Hilfe zu input :

%Vor%     
Ashwini Chaudhary 01.07.2013, 20:54
quelle
1

Sie verwenden die Funktion input() auf Python 2. Verwenden Sie raw_input() stattdessen oder wechseln Sie zu Python 3.

input() führt eval() für die angegebene Eingabe aus, daher wird die Eingabe von n als Python-Code interpretiert und nach der Variable n gesucht. Sie könnten das umgehen, indem Sie 'n' eingeben (also mit Anführungszeichen), aber das ist kaum eine Lösung.

In Python 3 wurde raw_input() in input() umbenannt und ersetzt die Version vollständig von Python 2. Wenn Ihre Materialien (Buch, Kursnotizen usw.) input() so verwenden, dass n funktioniert, müssen Sie wahrscheinlich stattdessen Python 3 verwenden.

    
Martijn Pieters 01.07.2013 20:54
quelle

Tags und Links