Seite 1 von 1

NameError: name 'raw_input' is not defined

Verfasst: Samstag 1. September 2012, 09:18
von lukasletitburn
Hallo Freunde,

ich habe eben ein kleines Programm zur Kontrollstruktur geschrieben:

Code: Alles auswählen

#!/usr/bin/python

zahl = 23
geraten = int(raw_input("Geben Sie eine ganze Zahl ein: "))

if geraten == zahl:
        print("Gluekwunsch, Sie haben es erraten.") # Hier faengt ein neuer Block an
        print("Aber Sie gewinnen leider keinen Preis!") #hier hoert der neue Block auf
elif geraten < zahl:
        print("Nein, die Zahl ist etwas hoeher.") # noch ein Block
        # Sie koennen in dem Block tun, was sie wolllen...
else:
        print("Nein, die Zahl ist etwas niedriger:")
        # hierhin gelangt man, wenn man geraten > zahl ist
print("Fertig")
# Diese letzte Anweisung wird immer am Ende nach der if-Anweisung ausgefuehrt
bei der Ausführung beendet er dies aber sofort mit:

Code: Alles auswählen

Traceback (most recent call last):
  File "if.py", line 4, in <module>
    geraten = int(raw_input("Geben Sie eine ganze Zahl ein: "))
NameError: name 'raw_input' is not defined
wenn ich den Code jedoch verändere und bei Line 4 das

Code: Alles auswählen

raw_ 
entferne akzeptiert er den Code. Wird nur noch mit input alleine gearbeitet? Hat raw_input keine Relevanz mehr?

Ich editiere mit vim und python 3.2.3 auf einem amd64 System mit Gentoo.

Muss ich damit ich

Code: Alles auswählen

raw_input
nutzen kann erst noch Bibliotheken oder Module nachinstallieren?? bzw. was für Bibliothelen und Module benötigt man generell?

Re: NameError: name 'raw_input' is not defined

Verfasst: Samstag 1. September 2012, 09:24
von derdon
raw_input wurde in Python3 zu input umbenannt. Das input aus Python2 existiert in Python3 nicht mehr (aus Sicherheitsgründen).

Re: NameError: name 'raw_input' is not defined

Verfasst: Samstag 1. September 2012, 09:25
von snafu
`raw_input` existiert in Python 3 nicht mehr und wurde dort in `input` umbenannt. Du hast wahrscheinlich ein älteres Tutorial gelesen, aus dem nicht hervorgeht, dass es für Python 2 geschrieben wurde, oder sowas ähnliches.