edubun
Deutsch

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)
Ausgabe
3000

Drei 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

OperatorBedeutungBeispielErgebnis
==gleich5 == 5True
!=ungleich5 != 5False
<kleiner als3 < 7True
<=kleiner oder gleich7 <= 7True
>größer als3 > 7False
>=größer oder gleich18 >= 19False

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.

Eine if/elif/else-Kette ist eine Leiter. Python geht abwärts, bis eine Bedingung True ist, führt diesen einen Zweig aus und springt über den Rest hinweg.
score = 95
if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
else:
    grade = "D"
print(grade)
Ausgabe
A

and, 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")
Ausgabe
Teen entry
Go in
ifFü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
elseLäuft, wenn keine Bedingung darüber True war
==Vergleicht zwei Werte; = weist zu
and / or / notBeide wahr / mindestens eine wahr / das Gegenteil
EinrückungVier Leerzeichen, die markieren, welche Zeilen zu einem Zweig gehören
  1. Was gibt das aus?
    x = 8
    if x > 5:
        print("big")
    else:
        print("small")
  2. Was gibt das aus?
    age = 7
    if age < 7:
        print("free")
    elif age <= 18:
        print("3000")
    else:
        print("5000")
  3. Was gibt das aus?
    score = 85
    if score >= 70:
        print("C")
    elif score >= 80:
        print("B")
  4. Was gibt das aus?
    x = 3
    if x > 5:
        print("A")
    print("B")
    • A
      B
    • B
    • A
    • (nichts)
  5. Was gibt das aus?
    print(5 == 5.0, "a" == "A")
  6. Was gibt das aus?
    t = 30
    print(t > 25 and t < 28)
  7. Was gibt das aus?
    rain = False
    print(not rain)
  8. Was gibt das aus?
    n = 14
    if n % 2 == 0:
        if n > 10:
            print("big even")
        else:
            print("small even")
    else:
        print("odd")
  9. Welche Zeile prüft richtig, ob x gleich 10 ist?
    • if x = 10:
    • if x == 10:
    • if x == 10
    • if (x = 10)
  10. Bringe die Zeilen in die richtige Reihenfolge, damit das Programm "Even" ausgibt.
    Ausgabe
    Even
Häufige Fehler
  • „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.
Hinweis für LehrkräfteVom Kartenschalter auszugehen funktioniert, weil Lernende die Entscheidung schon kennen; neu ist nur die Schreibweise. Bitte sie, die Regel vor dem Tippen der Reihe nach laut zu sagen. Es lohnt sich, das Bewertungsprogramm mit falscher Reihenfolge absichtlich auszuführen: Es gibt für 85 ein C aus, ohne jeden Fehler, ein erster Vorgeschmack auf einen logischen Fehler. Teste beim Prüfen der Arbeit die Grenzwerte (6, 7, 18, 19 für das Ticketproblem), denn dort verstecken sich Off-by-one-Fehler zwischen < und <=. Der koreanische Informatiklehrplan der Mittelstufe hat einen Standard zu logischen Operationen und verschachtelten Kontrollstrukturen.
Das Wichtigste
  • 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