# Kontrollstrukturen und Vergleichsoperatoren¶

## Verzweigung (Branching)¶

In [ ]:

    # if / else / elif

    alter = -1

    if alter >= 16:
        print("Nicht vergessen: am 9.6.2024 ist Europa-Wahl!")
    elif alter > 0:
        print("Schön, dass du geboren bist!")
    else:
        print("Hmm, ob das so stimmt?")

In [ ]:

    richtung = "s"

    if richtung == "n":
        print("Auf in den hohen Norden!")
    elif richtung == "s":
        print("Nach Süden, nach Süden!")
    elif richtung == "w":
        print("Go west!")
    elif richtung == "o":
        print("Bin schon da.")

In [ ]:

    # match

    # richtung = input("Wo soll's denn lang gehen? ")
    richtung = "n"

    match richtung:
        case "n" | "norden":
            print("Auf in den hohen Norden!")
        case "s" | "süden":
            print("Nach Süden, nach Süden!")
        case "w" | "westen":
            print("Go west!")
        case "o" | "osten":
            print("Bin schon da.")
        case _:
            print("Das Glück liegt manchmal abseits des direkten Wegs!")

## Schleifen¶

In [ ]:

    # for

    for i in range(5):
        print("Schleifendurchlauf Nr. ", i)

In [ ]:

    result = 0
    for i in range(1, 11):
        result += i
    print("Summe der Zahlen 1-10:", result)

In [ ]:

    for i in (2, 4, 6, 8, 9, 10):
        if i % 2:
            print(i, "passt nicht in die Reihe")

In [ ]:

    # while

    i = 10
    while i > 0:  # or: while True:
        print(i, "... ", end="")
        i -= 1
    print("Lift off!")

In [ ]:

    # continue

    for i in range(10, 20):
        if i == 13:
            continue
        print(i)

In [ ]:

    # break

    i = 0
    result = 0
    maximum = 10_000

    while True:
        result += i

        if result >= maximum:
            print("Iteration: ", i+1)
            break

        i += 1

In [ ]:

    alphabet = "abcdefghifklmnopqrstuvwxyz"
    buchstabe = "q"
    i = 0
    for char in alphabet:
        i += 1
        if char == buchstabe:
            print(buchstabe, "ist Buchstabe Nr.", i, "des dt. Alphabets.")
            break

In [ ]:

    # einfacher:

    for i, char in enumerate(alphabet):
        if char == buchstabe:
            print(buchstabe, "ist Buchstabe Nr.", i + 1, "des dt. Alphabets.")
            break

# Funktionen¶

In [ ]:

    # Aufruf eingebauter Funktionen

    x = pow(2, 8)
    y = max(x, 100)
    z = min(max(0, x), 100)
    print(x, y, z)

In [ ]:

    # optionale Parameter

    print()
    print("")

In [ ]:

    # eigene Funktionen

    def add(a, b):
        return a + b

    print(add(2, 3))

In [ ]:

    # Keyword arguments

    print(add(a=5, b=10))
    print(add(4, b=20))

In [ ]:

    # Das geht nicht:
    print(add(a=6, 10))

# Vergleichsausdrücke¶

In [ ]:

    a = 10
    b = 50
    c = 2
    d = 5 * a

    print(a == b)
    print(a != d)
    print(a > b)
    print(a > c)
    print(a >= c)
    print(c > a)
    print(c < b)
    print(c >= 2)

In [ ]:

    # Negation

    print(not c > a)
    print(not a == b)   # klarer: a != b
    print(not b != d)   # klarer: b == d
    print(not a > c)

In [ ]:

    # logische Kombination

    print(b > a and a > c)
    print(a > b or a > c)
    print(not a < c and b >= d)

In [ ]:

    # Bool'scher (True/False) Wert von Integers, Floats und Strings
    print(a > c)
    print(bool(a > c))  ## redundant, da Vergleichsausdrücke immer einen bool'schen Wert haben
    # Aber:
    print(bool(a))
    print(not a)  # auch ein bool'scher Ausdruck

In [ ]:

    print(bool(0))
    print(bool(1))
    print(bool(-1))
    print(bool(0.0))
    print(bool(0.1))
    print(bool(-0.1))
    print(bool("True"))
    print(bool("False"))  # !!!
    print(bool(""))
    print(bool("\0"))