"input" Befehl ohne eingabe?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
lastesel
User
Beiträge: 22
Registriert: Freitag 13. Juni 2008, 11:39

Mittwoch 7. Januar 2009, 15:07

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
Zuletzt geändert von lastesel am Mittwoch 7. Januar 2009, 15:26, insgesamt 4-mal geändert.
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Mittwoch 7. Januar 2009, 15:18

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.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Mittwoch 7. Januar 2009, 15:26

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!"
fred.reichbier
User
Beiträge: 155
Registriert: Freitag 29. Dezember 2006, 18:27

Mittwoch 7. Januar 2009, 15:31

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
lastesel
User
Beiträge: 22
Registriert: Freitag 13. Juni 2008, 11:39

Mittwoch 7. Januar 2009, 15:31

@ derdon:
Danke Funktioniert
DasIch
User
Beiträge: 2462
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Mittwoch 7. Januar 2009, 15:33

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.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Mittwoch 7. Januar 2009, 15:37

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.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 7. Januar 2009, 18:10

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Mittwoch 7. Januar 2009, 18:12

@Leonidas: Genau das wollte ich mit meinem Post sagen. :roll:
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 7. Januar 2009, 18:28

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?).
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Samstag 10. Januar 2009, 11:06

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
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 10. Januar 2009, 11:26

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten