Frage als Funktion erstellen

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
Marius82
User
Beiträge: 13
Registriert: Dienstag 28. August 2012, 15:15

Hallo,

ich habe mal eine Anfängerfrage. Der folgende Code ist eine einfache ja/nein Abfrage. Diese Abfrage würde ich gern als zwei getrennte Funktionen bilden, also Frage und Antwort. So das wenn eine ungültige Antwort gegeben wurde die Frage nochmal gestellt wird, bis eine gültige Antwort eingegeben wird.

Danke

Code: Alles auswählen

frage = raw_input("Scheint die Sonne? (j/n)")

if frage == "j":
	print("Juhu")

if frage == "n":
	print(":(")
Ein Mann ist Programmierer. Seine Frau schickt ihn einkaufen und sagt: "Geh bitte Brot kaufen und wenn Eier da sind, dann bring sechs mit."
Er geht los und kommt mit sechs Broten zurück.
Seine Frau wütend: "Sechs Brote, was soll dass denn?"
Er: Wieso, es waren Eier da..."
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@Marius82
Ich denke, im einfachen Fall reicht die Funktion für die Frage:

Code: Alles auswählen

def sunshine():
    answers = {'j': 'Juhu', 'n': ':('}
    while True:
        try:
            print answers[
                raw_input('Scheint die Sonne? (j/n)')[0].lower()
            ]
        except KeyError:
            pass
        else:
            break
Nachdem Du `raw_input` erwähnst nehme ich an, dass Du mit Python 2 arbeitest. `print` ist erst ab Python 3 eine Funktion und benötigt von daher keine Umklammerung des Strings.

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Marius82
User
Beiträge: 13
Registriert: Dienstag 28. August 2012, 15:15

Super, das funktioniert perfekt. Könntest du noch ein paar Kommentare hinzufügen da mir nicht ganz klar ist was bei jeder Anweisung passiert?

Danke!
Ein Mann ist Programmierer. Seine Frau schickt ihn einkaufen und sagt: "Geh bitte Brot kaufen und wenn Eier da sind, dann bring sechs mit."
Er geht los und kommt mit sechs Broten zurück.
Seine Frau wütend: "Sechs Brote, was soll dass denn?"
Er: Wieso, es waren Eier da..."
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Antworten