[Python-de] Verhindern iener Leereingabe

Albert Hermeling albert.hermeling at t-online.de
Sa Sep 29 09:13:09 UTC 2007


Am Freitag, 28. September 2007 17:47 schrieb Philipp Walderdorff:

Guten Morgen Philipp,

> Frage: Wie verhindert man die LeerEingabe?
> Habe nach langer Suche folgendes gefunden, verstehe aber nicht, wie das
> funkioniert.
In Python sind Variabeln die nicht belegt sind per Definition False. Im 
Programm unten wird durch "if not a" (wenn nicht a) genau das geprüft. Ist 
der Eingabe-String den raw_input liefert leer beendet sich das Programm. 
Ansonsten wird command ausgeführt. 

> def command(s):
>     print "command:", s
>
>     while 1:
>         a = raw_input("a-input")
>         if not a: break
>         command(a)
>
>         print "finished"
>
> Vielleicht gibt es eine einfachere Varieante.
Nein, das ist so ziemlich die einfachste Variante. Ich würde Dir ein 
Einsteiger Buch zum Thema Programmieren empfehlen, am besten eins das als 
Lernsprache Python einsetzt :-). Damit schlägst Du gleich zwei Fliegen mit 
einer Klappe :-). Sich nur auf das Internet zu verlassen ist für ein 
Anfänger - denke ich - etwas verwirrend.


Ich habe Dein Beispiel ein bisschen erweitert probiere das mal aus:

def printer(a):
	print a

def command(s):
    print "command:", s

    while 1:
        a = raw_input("a-input")
        if not a: break
        command(a)

        print "finished"

Rufe die Funktion command so auf:
command(printer)

Kleiner Tipp von mir, IDEL ist zum Interaktiven Ausprobieren von Python sehr 
gut geeignet, mach davon sehr stark (!) Gebrauch.

Viel Spaß beim lernen 

Albert