Kurz: 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.
Teil des Kurses Python
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.")Ausgabe:
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")Ausgabe:
gutBedingungen 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")Ausgabe:
Eintritt erlaubt
NormalpreisAuch Wahrheitswerte von Texten, Zahlen und Listen lassen sich direkt abfragen (siehe Kapitel Datentypen):
name = ""
if name:
print("Name:", name)
else:
print("Kein Name angegeben")Ausgabe:
Kein Name angegebenVerschachtelte Bedingungen
punkte = 85
if punkte >= 50:
if punkte >= 80:
print("bestanden mit Auszeichnung")
else:
print("bestanden")
else:
print("nicht bestanden")Ausgabe:
bestanden mit AuszeichnungFlacher 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)Ausgabe:
volljährigmatch: 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")Ausgabe:
WochenendeAchtung
Vergleiche mit
==, nicht mit=. Und der Doppelpunkt nach der Bedingung darf nicht fehlen:if x > 3ohne:ergibt einenSyntaxError.
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
Übungsaufgabe
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).
Quiz zur Selbstkontrolle
Was steht am Ende der Zeile einer if-Bedingung?
- Ein Doppelpunkt (richtig)
- Ein Semikolon
- Eine öffnende geschweifte Klammer
- Das Wort then
Welcher Zweig läuft, wenn mehrere elif-Bedingungen zutreffen?
- Nur der erste zutreffende (richtig)
- Alle zutreffenden
- Der letzte zutreffende
- Keiner, das ist ein Fehler
Wofür steht case _ in einer match-Anweisung?
- Für alle übrigen Fälle (richtig)
- Für den Fall, dass nichts übergeben wurde
- Für einen Fehler
- Für einen Unterstrich als Text
Weiter im Kurs
Zurück: String-Methoden
Weiter: Die while-Schleife
Alle Kapitel: Python im Überblick