~~NOTOC~~ ====== if-Statements und if-else-Statements ====== ===== Erklärungen ===== 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.") * 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: ''<'', ''<='' (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. ==== Aufgabe 1: Tageslicht ==== 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]]. ==== Aufgabe 2: Kopfrechentrainer ==== Das folgende Programm erzeugt zwei Zufallszahlen zwischen 2 und 10. import random x = random.randrange(2, 11) y = random.randrange(2, 11) print(x) print(y) 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: Was ist das Produkt von 5 und 7? 24 Dies ist leider falsch. Richtig wäre 35 gewesen. === 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. ===== Fallunterscheidungen ===== Oft muss man verschiedene Fälle unterscheiden, wie im folgenden Programm illustriert. Dort steht ''elif'' abkürzend für "else if". 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.') Statt einer ''elif''-Bedingung könnte es auch mehrere solcher Bedingungen geben (also zuerst ''if'', dann mehrmals ''elif'' und am Ende eventuell ein ''else''). 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: 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.') 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: 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.') ===== Aufgabe 3: if-elif-elif-elif-else-Struktur ===== (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. ===== Link zur Kursseite ===== [[lehrkraefte:snr:informatik:glf23|Zur Kursseite]]