Übung 11 – elif, and, or: Lösungen

Ziel dieser Übung

Sie unterscheiden mehr als zwei Fälle mit elif und verknüpfen Bedingungen mit and, or und not.

So arbeiten Sie: Die Aufgabe 3 steht in der Reflexion zu Sitzung 3. Programmieren Sie dort zuerst selbst und vergleichen Sie erst danach mit der Lösung hier. Ihre Lösung darf anders aussehen – wichtig ist, dass sie für alle Eingaben das Richtige ausgibt.

1. elif: sonst, wenn …

Python prüft die Zweige von oben nach unten. Der erste wahre Zweig läuft, alle weiteren werden übersprungen. else fängt alles auf, was übrig bleibt. Deshalb kommt bei „ab …“-Grenzen die höchste Grenze zuerst.

2. and, or, not

Wortwahr, wenn …Beispiel
andbeide Bedingungen wahr sindalter >= 18 and hat_ticket
ormindestens eine wahr istalter < 12 or alter > 65
notdie Bedingung falsch istnot hat_ticket

3. Die gemeinsame Aufgabe aus dem TandemLab

Das Kinoprogramm stürzte ab:

alter = input("Wie alt sind Sie? ")

if alter >= 16:
    print("Viel Spaß im Film!")
else:
    print("Leider erst ab 16.")
TypeError: '>=' not supported between instances of 'str' and 'int'

input() liefert Text. Text und Zahl lassen sich nicht mit >= vergleichen. Repariert mit int() und erweitert um Ticketpreise:

alter = int(input("Wie alt sind Sie? "))

if alter >= 16:
    print("Viel Spaß im Film!")
else:
    print("Leider erst ab 16.")

if alter < 12:
    preis = 6
elif alter < 18:
    preis = 8
else:
    preis = 11
print(f"Ihr Ticket kostet {preis} Euro.")
Wie alt sind Sie? 15
Leider erst ab 16.
Ihr Ticket kostet 8 Euro.

Aufgabe 3a · Notenrechner Übung

Punkte von 0 bis 100 einlesen, Note ausgeben.

Lösung anzeigen
punkte = int(input("Punkte (0–100): "))

if punkte >= 90:
    note = 1
elif punkte >= 80:
    note = 2
elif punkte >= 65:
    note = 3
elif punkte >= 50:
    note = 4
else:
    note = 5

print(f"Note: {note}")
Punkte (0–100): 72
Note: 3
Stünde punkte >= 50 ganz oben, bekäme jede Punktzahl ab 50 die Note 4 – die Reihenfolge entscheidet.

Aufgabe 3b · Eintritt im Schwimmbad Übung

Unter 6 frei, unter 18 oder studierend 3 Euro, sonst 5 Euro.

Lösung anzeigen
alter = int(input("Alter: "))
studium = input("Studieren Sie? (ja/nein) ")

if alter < 6:
    preis = 0
elif alter < 18 or studium == "ja":
    preis = 3
else:
    preis = 5

print(f"Eintritt: {preis} Euro")
Alter: 21
Studieren Sie? (ja/nein) ja
Eintritt: 3 Euro
or reicht, wenn eine der beiden Bedingungen stimmt. Tipp: Mit studium.lower() == "ja" klappt es auch bei der Eingabe „Ja“.

Aufgabe 3c · Zusatz: ungültige Eingaben Übung

Punkte unter 0 oder über 100 abfangen.

Lösung anzeigen
punkte = int(input("Punkte (0–100): "))

if punkte < 0 or punkte > 100:
    print("Ungültige Eingabe")
elif punkte >= 90:
    print("Note: 1")
elif punkte >= 80:
    print("Note: 2")
elif punkte >= 65:
    print("Note: 3")
elif punkte >= 50:
    print("Note: 4")
else:
    print("Note: 5")
Punkte (0–100): 120
Ungültige Eingabe