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.