Mit einer Bedingung entscheidet dein Programm, welcher Code ausgeführt wird. Die Grundform ist if. Hinter der Bedingung steht ein Doppelpunkt, und der Block darunter ist eingerückt.
temperatur = 28
if temperatur > 25:
print("Es ist heiß!")
print("Das steht immer da.")Es ist heiß! Das steht immer da.
else und elif
else gilt, wenn die Bedingung nicht zutrifft. Mit elif (kurz für else if) prüfst du weitere Fälle der Reihe nach; der erste zutreffende Zweig gewinnt:
note = 2
if note == 1:
print("sehr gut")
elif note == 2:
print("gut")
elif note == 3:
print("befriedigend")
else:
print("anderes Ergebnis")gut
Bedingungen kombinieren
alter = 25
hat_ticket = True
if alter >= 18 and hat_ticket:
print("Eintritt erlaubt")
if alter < 6 or alter > 65:
print("ermäßigt")
else:
print("Normalpreis")
if not hat_ticket:
print("Bitte erst ein Ticket kaufen")Eintritt erlaubt Normalpreis
Auch Wahrheitswerte von Texten, Zahlen und Listen lassen sich direkt abfragen (siehe Kapitel Datentypen):
name = ""
if name:
print("Name:", name)
else:
print("Kein Name angegeben")Kein Name angegeben
Verschachtelte Bedingungen
punkte = 85
if punkte >= 50:
if punkte >= 80:
print("bestanden mit Auszeichnung")
else:
print("bestanden")
else:
print("nicht bestanden")bestanden mit Auszeichnung
Flacher und lesbarer ist oft die Kombination mit and oder eine elif-Kette.
Kurzschreibweise (Bedingter Ausdruck)
Für einfache Fälle gibt es einen Ausdruck in einer Zeile:
alter = 20
status = "volljährig" if alter >= 18 else "minderjährig"
print(status)volljährig
match: Fallunterscheidung ab Python 3.10
Wenn du einen Wert mit vielen Möglichkeiten vergleichst, ist match übersichtlicher als eine lange elif-Kette. Der Unterstrich _ steht für "alles andere":
tag = "sa"
match tag:
case "mo" | "di" | "mi" | "do" | "fr":
print("Arbeitstag")
case "sa" | "so":
print("Wochenende")
case _:
print("unbekannt")Wochenende
Merke
if bedingung:mit eingerücktem Block;eliffür weitere Fälle;elsefür den Rest- Der erste zutreffende Zweig wird ausgeführt
- Kombinieren mit
and,or,not - Kurzform:
wert_a if bedingung else wert_b match/case(ab Python 3.10) für viele Einzelfälle
Aufgabe
Schreibe ein Programm, das zu einer Punktzahl (0 bis 100) eine Note von 1 bis 5 ausgibt (zum Beispiel ab 90 eine 1, ab 75 eine 2, ab 60 eine 3, ab 50 eine 4, sonst eine 5).