[Python-de] Re: Problem mit einer Schleife

Gerhard Häring gerhard.haering at opus-gmbh.net
Fri Sep 27 12:48:20 EDT 2002


Andreas Grytz wrote:
> Hallo,
> 
> ich knobel gerade an einer Schleife, die absolut nicht das tun will, was
> ich gerne möchte.
> 
> Ich habe folgender Funktion geschrieben, die solange sich selbst
> aufrufen soll, bi keine Eingabe mehr erfolgt:

Warum soll sich die Funktion selber aufrufen? Die Kombination aus
Endlosschleife und rekursiver Funktion macht für mich nicht besonders viel Sinn
;-) Vielleicht solltest du dich für eines von beiden entscheiden?

> 
> def getUrl(command):
>         """Trägt die Links ein."""
>  
>         while 1:
>                 print command
>                 url = raw_input("Index ["+month+"]: ")
>                 if url == "q":
>                         break
>                 elif url in ["h","H","?","help"]:
>                         print """Index help:
>                         Type number to choose from list.
>                         q  quit (ignore changes)
>                         h  show this help"""
>                         getUrl(command)
>                 elif url != "":
>                         index.write(url)
>                         command = "Bitte nächste eingeben. Beenden mit [q]."
>                         getUrl(command)
> 
> Jetzt passiert folgendes: Die Abfrage beendet sich erst, wenn ich drei
> mal hintereinander "q" eingebe. Hat jemand daür eine Erklärung?

Mit q springst du aus einer Rekursionsebene hinaus. Du hast aber scheinbar
vorher schon zwei Mal getURL() aufgerufen.

-- Gerhard






More information about the Python-de mailing list