Seite 1 von 1
Anfänger: Input erzeugt Fehler
Verfasst: Montag 24. Februar 2014, 07:55
von Hartmannsgruber
Guten Morgen,
ich habe mal wieder ein sehr wahrscheinlich leichtes Problem, weiß aber keinen Rat

Also, ich gebe einen Text von der Konsole ein:
Code: Alles auswählen
apfel = input("eingabe:")
apfel = str(apfel)
print(apfel)
anstatt das nun mein eingegebener Text ausgegeben wird, erscheint diese Fehlerrmeldung:
Traceback (most recent call last):
File "hallo.py", line 1, in <module>
apfel = input("eingabe:")
File "<string>", line 1, in <module>
NameError: name 'h' is not defined
Bei allen anderen kleinen Programmen hat das bisher immer Funktioniert, warum hier nicht?
Kann es was zu tun haben das ich von Windows zu Opensuse gewechselt bin?
Re: Anfänger: Input erzeugt Fehler
Verfasst: Montag 24. Februar 2014, 08:09
von cofi
Kann es sein, dass du neben dem Betriebssystem noch die Python-Version gewechselt hast? Von Python3 zu Python2?
In Python2 ist `print` keine Funktion (Klammern weg!) und `input` entspricht `eval(raw_input())`, sprich: Die Eingabe muss gueltiger Python-Code sein.
Python3 ist nicht kompatibel mit Python2 und man sollte aufpassen, wenn man zwischen den beiden wechselt.
Re: Anfänger: Input erzeugt Fehler
Verfasst: Montag 24. Februar 2014, 11:05
von mutetella
Mit anderen Worten:
Python 2Code: Alles auswählen
>>> print input('eingabe: ')
eingabe: h
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'h' is not defined
>>> h = 'Topaz'
>>> print input('eingabe: ')
eingabe: h
Topaz
Python 3
mutetella
Re: Anfänger: Input erzeugt Fehler
Verfasst: Montag 24. Februar 2014, 12:00
von Hyperion
Und die Moral aus der Geschicht': In der "zweier" verwende ``input`` nicht!
(Im Klartext: Bei Python 2.x verwende immer ``raw_input`` und niemals ``input``!)
Re: Anfänger: Input erzeugt Fehler
Verfasst: Montag 24. Februar 2014, 21:22
von Hartmannsgruber
Aus der Moral hab ich mir entnommen:
egal ob groß oder klein,
Versionsnummern bringen oft einen Zwirl hinein xDD
Vielen Dank an alle, habe den Interpreter auf 3.3 gestellt, jetzt läuft mein Skript

Re: Anfänger: Input erzeugt Fehler
Verfasst: Dienstag 25. Februar 2014, 09:00
von Hyperion
Hartmannsgruber hat geschrieben:
Vielen Dank an alle, habe den Interpreter auf 3.3 gestellt, jetzt läuft mein Skript

Dann brauchst Du aber keine Umwandlung in einen String mehr! Lass Dir mal den Typen ausgeben (``type()``), den ``input()`` zurückliefert. Kleiner Tipp: ``input`` ist das "alte" ``raw_input``...
