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?")
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.")
Nach Süden, nach Süden!
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!")
Auf in den hohen Norden!

Schleifen¶

In [ ]:
# for

for i in range(5):
    print("Schleifendurchlauf Nr. ", i)
Schleifendurchlauf Nr.  0
Schleifendurchlauf Nr.  1
Schleifendurchlauf Nr.  2
Schleifendurchlauf Nr.  3
Schleifendurchlauf Nr.  4
In [ ]:
result = 0
for i in range(1, 11):
    result += i
print("Summe der Zahlen 1-10:", result)
Summe der Zahlen 1-10: 55
In [ ]:
for i in (2, 4, 6, 8, 9, 10):
    if i % 2:
        print(i, "passt nicht in die Reihe")
9 passt nicht in die Reihe
In [ ]:
# while

i = 10
while i > 0:  # or: while True:
    print(i, "... ", end="")
    i -= 1
print("Lift off!")
10 ... 9 ... 8 ... 7 ... 6 ... 5 ... 4 ... 3 ... 2 ... 1 ... Lift off!
In [ ]:
# continue

for i in range(10, 20):
    if i == 13:
        continue
    print(i)
10
11
12
14
15
16
17
18
19
In [ ]:
# break

i = 0
result = 0
maximum = 10_000

while True:
    result += i

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

    i += 1
Iteration:  142
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
q ist Buchstabe Nr. 17 des dt. Alphabets.
In [ ]:
# einfacher:

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

Funktionen¶

In [ ]:
# Aufruf eingebauter Funktionen

x = pow(2, 8)
y = max(x, 100)
z = min(max(0, x), 100)
print(x, y, z)
256 256 100
In [ ]:
# optionale Parameter

print()
print("")

In [ ]:
# eigene Funktionen

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

print(add(2, 3))
5
In [ ]:
# Keyword arguments

print(add(a=5, b=10))
print(add(4, b=20))
15
24
In [ ]:
# Das geht nicht:
print(add(a=6, 10))
  Cell In[32], line 2
    print(add(a=6, 10))
                     ^
SyntaxError: positional argument follows keyword argument

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)
False
True
False
True
True
False
True
True
In [ ]:
# Negation

print(not c > a)
print(not a == b)   # klarer: a != b
print(not b != d)   # klarer: b == d
print(not a > c)
True
True
True
False
In [ ]:
# logische Kombination

print(b > a and a > c)
print(a > b or a > c)
print(not a < c and b >= d)
True
True
True
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
True
True
True
False
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"))
False
True
True
False
True
True
True
True
False
True