Programmierkurs Python

Sitzung 3 - Funktionen

Flows

for

Das for statement führt Code-Zeilen für jedes Element einer Liste aus, wobei wir das einzelne Element in dieser Liste mit einer neuen Variable versehen.

foo = [1, 2, 3]

for i in foo:
    print(i)
1
2
3
# schachtelung von for schleifen
for i in range(0, 3):
    for j in range(1, 3):
        print(f'{i} * {j} = {i*j}')
0 * 1 = 0
0 * 2 = 0
1 * 1 = 1
1 * 2 = 2
2 * 1 = 2
2 * 2 = 4

Aufgabe

  • Gebe alle geraden Zahlen zwischen 1 und inklusive 100 aus

Hinweis: Siehe modolu Funktion, in Python %, welche den Rest einer ganzzahligen Division angibt, also die Zahl \(b\) bei

\(n = m*a +b, 0 <= b < |m|\)

Beispiele:

2 % 5 = 2  # 0 * 5 + 2
8 % 5 = 3  # 1 * 5 + 3
42 % 13 = 3  # 13 * 3 + 3
16 % 2 = 0  # 8*2 + 0
17 % 2 = 1  # 8*2 + 1
18 % 2 = 0  # 9*2 + 0

Funktionen

Um wiederkehrende Operationen nicht immer neu schreiben zu müssen abstrahiert man diese in Funktionen.

Diese Funktionen können zusätzlich Arguemnte annehmen und können mithilfe von return auch Datenwerte zurückgeben die man wiederum in einer Variable speichern kann.

def say_hello():
    print('Hello')

say_hello()
Hello
def give_hello():
    return "Hello"

foo = give_hello()
print(foo)
Hello
def say_my_name(name):
    return "Hello " + name

print(say_my_name('Clara'))
Hello Clara
def say_my_name_n_times(name, n_times):
    return say_my_name(name) * n_times

print(say_my_name_n_times('Clara', 5))
Hello ClaraHello ClaraHello ClaraHello ClaraHello Clara
# kwargs and args as defaults
def say_my_name_n_times(name, n_times=2):
    return say_my_name(name) * n_times

say_my_name_n_times('Clara')
'Hello ClaraHello Clara'

Aufgabe

  • Schreibe eine Funktion die einen Boolean Wert zurückliefert ob eine Zahl gerade ist oder nicht.