Seite 1 von 1

"input" Befehl ohne eingabe?

Verfasst: Mittwoch 7. Januar 2009, 15:07
von lastesel
Hallo,
ich habe folgendes Skript:

Code: Alles auswählen

 while True:
 
        eingabe = input("Eingabe: ")

        if eingabe > 6:
                print("Keine Funktion")
                 continue
        if eingabe is None:
               continue
        if eingabe == 1:
                print("1")
               continue
        if eingabe == 2:
                 print("2")
                 continue
        if eingabe == 3:
                 print("3")
                continue
        if eingabe == 4:
                print("4")
                continue
        if eingabe == 5:
                  print("5")
                  continue
        if eingabe == 6:
                  print("6")
                  continue
        if eingabe == 0:
                  break
Nun da Probelm:
Wenn ich nun die Möglichkeit habe eine Zahl einzugeben, aber nichts eingebe Kommt der Fehler:

Traceback (most recent call last):
File "programm.py", line 29, in ?
eingabe = input("Eingabe: ")
File "<string>", line 0

^
SyntaxError: unexpected EOF while parsing


line 29 ist hier Zeile 1
Wie kann ich das beheben. Die "if eingabe is None" Zeile hat leider auch keine Lösung gebracht.
Danke,
lastesel

Verfasst: Mittwoch 7. Januar 2009, 15:18
von querdenker
Editiere bitte dein Posting.

Lies dir dazu DAS HIER bitte durch und folge den Anweisungen. Python kennt keine Zeilennummern.

Danach können wir dir helfen.

Verfasst: Mittwoch 7. Januar 2009, 15:26
von derdon
Probiere mal folgendes in einer Python-Shell aus:

Code: Alles auswählen

In [31]: while True:
    try:
        num = int(float(raw_input()))
    except ValueError:
        print "A number please!"

Verfasst: Mittwoch 7. Januar 2009, 15:31
von fred.reichbier
Hallo,

lies am besten mal [wiki=raw_input_vs._input]diesen Artikel[/wiki] über `input`. Daher kommt nämlich auch der Fehler: ein leerer String ist kein gültiger Python-Ausdruck (`eval('')` wirft denselben Fehler).

Gruß,

Fred

Verfasst: Mittwoch 7. Januar 2009, 15:31
von lastesel
@ derdon:
Danke Funktioniert

Verfasst: Mittwoch 7. Januar 2009, 15:33
von DasIch
Verwende raw_input statt input. Vermeide continue, dass führt zu Spagehetti Code. Es gibt elif und ich hoffe dass diese if Abfrage nicht ernst gemeint ist.

Verfasst: Mittwoch 7. Januar 2009, 15:37
von derdon
Und nach der Meldung aus der Exception zu urteilen, benutzt du noch nicht Version 3 von Python. Also solltest du statt

Code: Alles auswählen

print("Hello world!")
besser

Code: Alles auswählen

print "Hello world!"
schreiben.

Verfasst: Mittwoch 7. Januar 2009, 18:10
von Leonidas
Außerdem solltest du ``print`` als Statement stehen lassen. Für einen Moment habe ich überlegt, ob das Python 3.0-Code sein soll, aber dort verhält sich ``input()`` nicht so wie von dir beschrieben.

Verfasst: Mittwoch 7. Januar 2009, 18:12
von derdon
@Leonidas: Genau das wollte ich mit meinem Post sagen. :roll:

Verfasst: Mittwoch 7. Januar 2009, 18:28
von Leonidas
derdon hat geschrieben:@Leonidas: Genau das wollte ich mit meinem Post sagen. :roll:
Oh, tut mir leid, habe das Posting übersehen. Die Seite war schon länger im Tab und ich habe nicht bemerkt dass er beim öffnen der Session die Seite nicht neu geladen hat (Bonusfrage: warum macht Firefox sowas?).

Verfasst: Samstag 10. Januar 2009, 11:06
von Andyh
Hallo

@Leonidas

Mit Session meinst du beenden und wieder aufmachen, nur das wir nicht an einander vorbei reden.

Also mein Firefox läd alle Seiten die noch geöffnet wahren nach den starten neu (version 3.0.5)

Gruß
Andyh

Verfasst: Samstag 10. Januar 2009, 11:26
von Leonidas
Andyh hat geschrieben:Mit Session meinst du beenden und wieder aufmachen, nur das wir nicht an einander vorbei reden.

Also mein Firefox läd alle Seiten die noch geöffnet wahren nach den starten neu (version 3.0.5)
Ja. Meiner scheint da einen etwas agressiveren Cache zu haben, hat mich auch überrascht.