Hier eine Funktion wetter(), wie sie einige von euch geschrieben haben:
def wetter():
luftdruck = input('Luftdruck: ')
temperatur = input('Temperatur: ')
jahreszeit = 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 weiss 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:__________________________________________________________________
Jetzt überlege (!), wo könnte der Fehler liegen? __________________________________________________________________
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:
Keep it simple!
Trockenprogrammieren: mach dir einen Entwurf auf Papier (sehr kostengünstig!), hat die Marieke vorgemacht, ich war/bin beeindruckt!
Bau dein Programm aus schon funktionierenden Funktionen oder Programm-Zeilen zusammen, die Ulrike hat gezeigt, wie das geht, indem sie einfach Zeilen aus meiner Anleitung vom letzten Mal kopiert hat. Gut so! Dieses Prinzip hat sogar einen wohlklingenden Namen: Programme sollten 'reusable' sein, zu deutsch: man sollte sie wiederholt verwenden können, kurz: schreibe einmal, benutze öfters!
Üben!
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.
Verändere dein Wetterprognoseprogramm so, dass es funktioniert! (Abspeichern unter wetter.py)
Die Raute wartet . . .
Abspeichern unter caro.py
→ sp, 2023-07-26