Entscheidungen mit if treffen
Python prüft if und jedes elif von oben und führt nur den ersten Zweig aus, dessen Bedingung True ist; der Rest wird übersprungen.
Ein Ticketpreis, der vom Alter abhängt
Hier ein Problem zum Ausprobieren, bevor eine neue Syntax kommt. Ein kleines Wissenschaftsmuseum (für dieses Beispiel erfunden) verlangt von Kindern unter 7 nichts, von 7 bis 18 Jahren 3000 Won und von allen anderen 5000 Won. Zu einem gegebenen Alter soll das Programm den Preis ausgeben. Schreibe die Regel zuerst in einfachen Worten auf, als Liste von Fragen in der Reihenfolge, in der du sie am Kartenschalter stellen würdest.
Du hast wahrscheinlich etwas wie das geschrieben: Ist der Besucher jünger als 7? Wenn ja, kostenlos, und Schluss. Wenn nicht, ist er 18 oder jünger? Wenn ja, 3000 Won, und Schluss. Sonst 5000 Won. Das ist schon das Programm. Python schreibt „wenn“, „sonst, wenn“ und „sonst“ als if, elif und else.
age = 12
if age < 7:
price = 0
elif age <= 18:
price = 3000
else:
price = 5000
print(price)3000Drei Einzelheiten der Syntax zählen. Jede Bedingungszeile endet mit einem Doppelpunkt. Die Zeilen, die zu einem Zweig gehören, sind eingerückt, und das Python-Tutorial empfiehlt vier Leerzeichen. Endet die Einrückung, endet der Zweig, weshalb print(price) bei jedem Alter läuft. Und nur ein Zweig läuft: Bei Alter 12 ist die erste Bedingung False, die zweite True, der price wird also 3000, und das else wird nie angesehen.
Vergleiche ergeben True oder False
| Operator | Bedeutung | Beispiel | Ergebnis |
|---|---|---|---|
| == | gleich | 5 == 5 | True |
| != | ungleich | 5 != 5 | False |
| < | kleiner als | 3 < 7 | True |
| <= | kleiner oder gleich | 7 <= 7 | True |
| > | größer als | 3 > 7 | False |
| >= | größer oder gleich | 18 >= 19 | False |
Beachte das doppelte Gleichheitszeichen. Ein = weist einen Wert zu, zwei == vergleichen. Auch Strings lassen sich vergleichen: "kimchi" == "Kimchi" ist False, weil Großbuchstaben als andere Zeichen zählen.
Die Reihenfolge der elif-Zeilen ändert die Antwort
Weil Python bei der ersten True-Bedingung stoppt, kommt es auf die Reihenfolge der Zweige an. Das klassische Beispiel ist das Bewerten eines Ergebnisses. Prüfe zuerst auf 90 und mehr, dann 80, dann 70. Setzt du die Prüfung auf 70 zuerst, fängt sie ein Ergebnis von 95 ab und gibt ein C, denn 95 >= 70 ist auch True.
score = 95
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
else:
grade = "D"
print(grade)Aand, or, not verbinden Bedingungen
and ist nur True, wenn beide Seiten True sind. or ist True, wenn mindestens eine Seite es ist. not kehrt True und False um. Eine Bedingung wie „zwischen 13 und 18“ lässt sich als age >= 13 and age <= 18 schreiben oder in Pythons kürzerer Form 13 <= age <= 18. Eine Bedingung kann auch in einem anderen Zweig stehen, das heißt Verschachtelung. Der koreanische Informatiklehrplan der Mittelstufe nennt beides, logische Operationen und verschachtelte Kontrollstrukturen, in einem seiner Programmierstandards.
age = 15
has_ticket = True
if 13 <= age <= 18 and has_ticket:
print("Teen entry")
if not has_ticket or age < 7:
print("See the desk")
else:
print("Go in")Teen entry
Go in| if | Führt die eingerückten Zeilen nur aus, wenn die Bedingung True ist |
| elif | „Sonst, wenn“: wird nur geprüft, wenn alles darüber False war |
| else | Läuft, wenn keine Bedingung darüber True war |
| == | Vergleicht zwei Werte; = weist zu |
| and / or / not | Beide wahr / mindestens eine wahr / das Gegenteil |
| Einrückung | Vier Leerzeichen, die markieren, welche Zeilen zu einem Zweig gehören |
- Was gibt das aus?
x = 8 if x > 5: print("big") else: print("small") - Was gibt das aus?
age = 7 if age < 7: print("free") elif age <= 18: print("3000") else: print("5000") - Was gibt das aus?
score = 85 if score >= 70: print("C") elif score >= 80: print("B") - Was gibt das aus?
x = 3 if x > 5: print("A") print("B")A
BBA(nichts)
- Was gibt das aus?
print(5 == 5.0, "a" == "A") - Was gibt das aus?
t = 30 print(t > 25 and t < 28) - Was gibt das aus?
rain = False print(not rain) - Was gibt das aus?
n = 14 if n % 2 == 0: if n > 10: print("big even") else: print("small even") else: print("odd") - Welche Zeile prüft richtig, ob x gleich 10 ist?
- if x = 10:
- if x == 10:
- if x == 10
- if (x = 10)
- Bringe die Zeilen in die richtige Reihenfolge, damit das Programm "Even" ausgibt.Ausgabe
Even
- „if score = 90: prüft, ob score gleich 90 ist.“ Ein = ist eine Zuweisung. Python bricht mit SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='? ab. Schreibe if score == 90:.
- „if answer == "yes" or "y": fängt beide Antworten ab.“ Python liest es als (answer == "yes") or ("y"), und ein nicht leerer String wie "y" zählt als wahr, die Bedingung ist also immer wahr. Schreibe answer == "yes" or answer == "y".
- „Einrückung ist nur fürs Aussehen.“ In Python entscheidet sie, welche Zeilen zum Zweig gehören. Wird sie vergessen, bricht das Programm mit IndentationError: expected an indented block after 'if' statement on line 2 ab.
- if / elif / else: Nur der erste True-Zweig läuft.
- Bedingungszeilen enden mit :, und der Zweig ist um vier Leerzeichen eingerückt.
- == vergleicht; = weist zu.
- Setze in einer elif-Kette die strengste Bedingung zuerst.
- and, or und not verbinden Bedingungen.
Quellen zu diesem Kurs (6)
- Python Software Foundation, The Python Tutorial for Python 3.12 (docs.python.org/3.12/tutorial: 2 Using the Python Interpreter, 3 An Informal Introduction to Python (numbers, text, lists), 4 More Control Flow Tools (if, for, range, break and continue, defining functions, default argument values, 4.10 coding style: 4-space indentation), 5 Data Structures (list methods, 5.5 dictionaries, insertion order), 8 Errors and Exceptions (syntax errors, exceptions, reading the traceback, handling exceptions), 15 Floating-Point Arithmetic (0.1 + 0.2))
- Built-in Functions (docs.python.org/3.12/library/functions.html: print, input, len, int, float, str, type, round (round half to even: round(0.5) and round(-0.5) are 0, round(1.5) is 2), range, sum, min, max, sorted)
- Built-in Types (str methods upper, lower, replace, strip; dict.get; list.append, pop, remove, sort returning None)
- General Python FAQ (docs.python.org/3.12/faq/general.html: Guido van Rossum began Python in the 1989 Christmas holidays, posted it to USENET in February 1991, named it after Monty Python's Flying Circus)
- Curriculum for the Korean pages: 교육부 고시 제2022-33호 [별책 10] 정보과 교육과정 (PDF read 2026-10-19: 중학교 정보 [9정03-05] 리스트 등 데이터를 순차적으로 저장하는 구조, [9정03-06] 논리 연산과 중첩 제어 구조, [9정03-07] 함수 활용과 디버거로 오류 수정, [9정03-08] 실생활 문제를 프로그래밍으로 해결, 적용 시 고려 사항 「학생의 수준을 고려하여 적합한 프로그래밍 언어를 선정」; 고등학교 정보 [12정03-04] 자료형, [12정03-05] 표준입출력, [12정03-07] 제어 구조)
- Bug story only: Smithsonian National Museum of American History, Log Book With Computer Bug, 1947, Harvard Mark II, "first actual case of bug being found", probably not Hopper's log book (americanhistory.si.edu/collections/object/nmah_334663, read 2026-10-19)
Abgerufen: 2026-10-19