Hier eine Funktion wetter(), wie sie einige von euch geschrieben haben:
def wetter():
luftdruck = raw_input('Luftdruck: ')
temperatur = raw_input('Temperatur: ')
jahreszeit = raw_input('Jahreszeit: ')
if (luftdruck == 'steigt' and temperatur == 'steigt' and jahreszeit == 'Sommer'):
print text1
if (luftdruck == 'steigt' and temperatur == 'fallt' and jahreszeit == 'Winter'):
print text2
if (luftdruck == 'fallt' and temperatur == 'fallt' and jahreszeit == 'Sommer'):
print text3
if (luftdruck == 'fallt' and temperatur == 'steigt' and jahreszeit == 'Winter'):
print text4
else:
print sonst
Schauen wir uns einen Testlauf an:
>>> wetter()
Luftdruck: steigt
Temperatur: steigt
Jahreszeit: Sommer
Pack die Badehose ein, nimm dein kleines Schwesterlein ...
Nichts Genaues weiß man nicht!
>>> wetter()
Luftdruck: steigt
Temperatur: fallt
Jahreszeit: Winter
Hei, hei, hei, so eine Schneeballschlacht ...
Nichts Genaues weiss man nicht!
>>> wetter()
Luftdruck: fallt
Temperatur: fallt
Jahreszeit: Sommer
I'm singing in the rain ...
Nichts Genaues weiss man nicht!
>>> wetter()
Luftdruck: fallt
Temperatur: steigt
Jahreszeit: Winter
Leise rieselt der Schnee ...
>>>
Fragen zu diesem Testlauf:
Der Testlauf zeigt: für eine bestimmte Eingabekombination funktioniert das Programm, für welche? __________________________________________________________________
In den anderen Fällen geht etwas schief, erkläre den Fehler in eigenen Worten:__________________________________________________________________
__________________________________________________________________
Wenn ich die Antwort auf die Frage in der Überschrift wüsste, wäre ich nicht mehr hier, sondern würde Seminare veranstalten und Millionen verdienen, mindestens . . . Trotzdem gibt es natürlich einige Tipps:
Wie lösen wir das Problem der Wettervorhersage? Durch logisches Denken! Überlege:
Wenn Fall 1 vorliegt, gib Text 1 aus,
Sonst: Wenn Fall 2 vorliegt, gib Text 2 aus,
Sonst: Wenn Fall 3 vorliegt, gib Text 3 aus,
Sonst: Wenn Fall 4 vorliegt, gib Text 4 aus,
Sonst (und nur sonst!): gib den Text "Nix genaues ..." aus
Statt Wenn sagen wir if
, und statt Sonst schreiben wir else
,
das gibt also viele (!) ifs und elses, Beispiel:
if (luftdruck == 'steigt' and temperatur == 'steigt' and jahreszeit == 'Sommer'):
print text1
else:
if (luftdruck == 'steigt' and temperatur == 'faellt' and jahreszeit == 'Winter'):
print text2
else:
if (luftdruck == 'fallt' and temperatur == 'faellt' and jahreszeit == 'Sommer'):
print text3
.
.
.
Problem: hier kommt man schnell durcheinander, spätestens beim Einrücken. Die Alternative sieht so aus:
if (luftdruck == 'steigt' and temperatur == 'steigt' and jahreszeit == 'Sommer'):
print text1
elif (luftdruck == 'steigt' and temperatur == 'faellt' and jahreszeit == 'Winter'):
print text2
elif (luftdruck == 'faellt' and temperatur == 'faellt' and jahreszeit == 'Sommer'):
print text3
.
.
.
Es wird also ein else
und das darauffolgende if
zusammengefasst zu
einem elif
, kurz: else + if = elif, und dies solltest du unbedingt
in dein Programm einbauen, siehe Aufgabe 1.
→ sp, 2016-12-08