Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ~~NOTOC~~ ====== if-Statements und if-else-Statements ====== ===== Erklärungen ===== <WRAP center round info> <hidden Mit der Klasse schrittweise geschriebenes Programm (im Editor und an der Tafel):> <code python einfuehrung-if.py> alter = int(input("Wie alt bist du? ")) if (alter >= 13) and (alter < 20): print("Du bist ein Teenager.") antwort = input("In welcher Stadt befindet sich die KSBG? ") if (antwort == "St. Gallen") or (antwort == "St.Gallen"): print("Korrekt!") else: print("Vermutlich falsch.") print("Die als richtig akzeptierten Antworten wären 'St. Gallen' und 'St.Gallen' gewesen.") </code> </hidden> <hidden Tafelerklärungen dazu> * Struktur des if statements: Der Doppelpunkt und die Einrückungen sind wichtig! * Ausführungsbedingung: Ein Ausdruck, der wahr (''True'') oder falsch (''False'') sein kann. * Vergleichsoperatoren (teste in Python-Shell): * ''=='' (gleich), ''!='' ungleich, z.B. ''"xxx"== 3 * "x"'' * bei Zahlen: ''<'', ''<nowiki><=</nowiki>'' (kleiner-gleich), ''>'', ''>='' (grösser-gleich) * logische Verknüpfungen (teste in Python-Shell): * ''and'' = logisches Und: Wird genau dann wahr, wenn beide Aussagen wahr sind. * ''or'' = logisches Oder: Wird genau dann wahr, wenn mindestens eine Aussage wahr ist. * ''not'' = logische Verneinug = Negation: Macht aus ''True'' ''False'' und umgekehrt. * Wahrheitswerte = boolesche Werte: ''True'' und ''False''. Neuer Datentyp. * if-else-statement: Die Einrückungen sind wichtig. </hidden> </WRAP> ==== Aufgabe 1: Tageslicht ==== <WRAP center round todo> Schreibe ein Programm, das den Benutzer fragt, wie viele Minuten Tageslicht er heute bereits hatte. * Falls er 120 Minuten oder mehr antwortet, soll er gelobt werden. * Sonst wird ihm gesagt, wie viele Minuten er noch draussen verbringen sollte. Beispiel: Der Benutzer gibt ein, dass er 35 Minuten Tageslich hatte. Dann soll der Computer Folgendes ausgeben: ''Bitte gehe noch 85 Minuten nach draussen.'' ---- Hintergrundinformation: Zwei Stunden Tageslicht pro Tag minimieren laut wissenschaftlicher Studien das Risiko, kurzsichtig zu werden, siehe [[https://www.deutschlandfunkkultur.de/sehstoerung-des-auges-immer-mehr-kinder-werden-kurzsichtig.976.de.html?dram:article_id=499263|Deutschlandfunk Kultur: Immer mehr Kinder werden kurzsichtig]]. </WRAP> ==== Aufgabe 2: Kopfrechentrainer ==== <WRAP center round todo> Das folgende Programm erzeugt zwei Zufallszahlen zwischen 2 und 10. <code python kopfrechentrainer.py> import random x = random.randrange(2, 11) y = random.randrange(2, 11) print(x) print(y) </code> Schreibe das Programm so um, dass der Computer den Benutzer nach dem Produkt der Variablen ''x'' und ''y'' fragt und ihm mitteilt, ob er richtig gerechnet hat. Der Dialog mit dem Computer sollte sinngemäss so aussehen: <code text> Was ist das Produkt von 5 und 7? 24 Dies ist leider falsch. Richtig wäre 35 gewesen. </code> === Bonus === Erweitere den Kopfrechentrainer, etwa um eine Divisionsaufgabe, oder um eine Additions- oder Subtraktionsaufgabe von Zahlen zwischen -100 und 100. Wenn du mehrere Aufgaben nacheinander stellen willst, solltest du eine ''while''-Schleife verwenden, wie wir sie bald behandeln werden. </WRAP> ===== Fallunterscheidungen ===== <WRAP center round info> Oft muss man verschiedene Fälle unterscheiden, wie im folgenden Programm illustriert. Dort steht ''elif'' abkürzend für "else if". <code python fallunterscheidung.py> alter = int(input('Gib dein Alter ein! ')) if alter <= 18: print('Du bist noch nicht volljährig.') elif alter > 70: print('Du bist ein Senior.') else: print('Du bist volljährig, aber noch kein Senior.') </code> Statt einer ''elif''-Bedingung könnte es auch mehrere solcher Bedingungen geben (also zuerst ''if'', dann mehrmals ''elif'' und am Ende eventuell ein ''else''). <hidden Alternativen, die zum selben Programmablauf führen:> Mit zwei verschachtelten if-statements; das obige Programm ist einen "Abkürzung" des folgenden Programms: Das erste ''else'' ist mit dem nachfolgenden ''if'' zu ''elif'' verschmolzen; dies spart Schreibarbeit und Einrückungen: <code python fallunterscheidung-ausfuehrlich.py> alter = int(input('Gib dein Alter ein!')) if alter <= 18: print('Du bist noch nicht volljährig.') else: if alter > 70: print('Du bist ein Senior.') else: print('Du bist volljährig, aber noch kein Senior.') </code> Mit drei if-statements; dies ist tendenziell fehleranfälliger, denn auch im dritten ''if''-statement muss man noch eine Bedingung angeben, während im obersten Programm dort nur ein ''else''steht: <code python fallunterscheidung-ausfuehrlich.py> alter = int(input('Gib dein Alter ein!')) if alter <= 18: print('Du bist noch nicht volljährig.') if alter > 70: print('Du bist ein Senior.') if alter > 18 and alter <= 70: print('Du bist ein Senior.') </code> </hidden> </WRAP> ===== Aufgabe 3: if-elif-elif-elif-else-Struktur ===== <WRAP round todo> (1) Schreibe ein Programm mit drei ''elif''-statements ähnlich wie im vorigen Programm, das vom Benutzer eine Temperaturangabe einliest und diesem dann mitteilt, ob es ''kalt'' oder ''kühl'' oder ''behaglich'' oder ''warm'' oder ''heiss'' ist. In welchem Temperaturbereich welches Temperaturempfinden eintritt, ist dir überlassen. (3) Teste dein Programm: Für jeden Temperaturbereich ist mindestens ein Test durchzuführen. </WRAP> ===== Link zur Kursseite ===== [[lehrkraefte:snr:informatik:glf23|Zur Kursseite]] lehrkraefte/snr/informatik/glf23/python/if-statements.txt Last modified: 2023/09/28 14:46by Olaf Schnürer