📘 Tag 14
March 28, 2026 · View on GitHub
30 Tage Python: Tag 14 - Funktionen höherer Ordnung
Autor:
Asabeneh Yetayeh
Zweite Edition: Juli 2021

📘 Tag 14
Funktionen höherer Ordnung
In Python werden Funktionen als "First Class Citizens" behandelt. Das bedeutet:
- Eine Funktion kann eine oder mehrere Funktionen als Parameter annehmen.
- Eine Funktion kann eine Funktion als Ergebnis zurückgeben.
- Eine Funktion kann modifiziert oder einer Variablen zugewiesen werden.
Funktion als Parameter
def sum_numbers(nums):
return sum(nums)
def higher_order_function(f, lst):
return f(lst)
result = higher_order_function(sum_numbers, [1, 2, 3, 4, 5])
print(result) # 15
Funktion als Rückgabewert
def square(x): return x ** 2
def cube(x): return x ** 3
def higher_order_function(type):
if type == 'square':
return square
elif type == 'cube':
return cube
result = higher_order_function('square')
print(result(3)) # 9
Python Closures (Abschlüsse)
Ein Closure erlaubt es einer inneren Funktion, auf den Gültigkeitsbereich (Scope) der äußeren Funktion zuzugreifen, selbst wenn die äußere Funktion bereits fertig ausgeführt wurde.
def add_ten():
ten = 10
def add(num):
return num + ten
return add
closure_result = add_ten()
print(closure_result(5)) # 15
Python Decorators (Dekoratoren)
Ein Decorator ist ein Design-Pattern, das es ermöglicht, die Funktionalität eines Objekts zu erweitern, ohne dessen Struktur zu verändern. Man nutzt dafür das @-Symbol.
def uppercase_decorator(function):
def wrapper():
func = function()
return func.upper()
return wrapper
@uppercase_decorator
def greeting():
return 'Willkommen zu Python'
print(greeting()) # WILLKOMMEN ZU PYTHON
Eingebaute Funktionen höherer Ordnung
Map-Funktion
Wendet eine Funktion auf jedes Element einer Sequenz an.
numbers = [1, 2, 3, 4]
squared = map(lambda x: x**2, numbers)
print(list(squared)) # [1, 4, 9, 16]
Filter-Funktion
Filtert Elemente heraus, die eine bestimmte Bedingung (True/False) erfüllen.
numbers = [1, 2, 3, 4, 5]
evens = filter(lambda x: x % 2 == 0, numbers)
print(list(evens)) # [2, 4]
Reduce-Funktion
Reduziert eine Sequenz auf einen einzigen Wert (muss aus functools importiert werden).
from functools import reduce
numbers = [1, 2, 3, 4, 5]
total = reduce(lambda x, y: x + y, numbers)
print(total) # 15
💻 Übungen - Tag 14
Level 1
- Erkläre den Unterschied zwischen
map,filterundreduce. - Erkläre den Unterschied zwischen Higher Order Function, Closure und Decorator.
- Gib alle Länder, Namen und Zahlen aus den gegebenen Listen mit einer Schleife aus.
Level 2
- Nutze
map, um alle Länder in der Liste in Großbuchstaben umzuwandeln. - Nutze
map, um alle Zahlen zu quadrieren. - Nutze
filter, um Länder zu filtern, die das Wort "land" enthalten. - Nutze
filter, um Länder mit genau 6 Zeichen zu finden. - Schreibe eine Funktion
get_string_lists, die nur die String-Elemente aus einer gemischten Liste filtert. - Nutze
reduce, um alle Zahlen zu summieren. - Nutze
reduce, um alle Länder zu einem Satz zu verbinden.
Level 3
- Nutze die
countries_data.py:- Sortiere Länder nach Name, Hauptstadt und Bevölkerung.
- Finde die 10 am häufigsten gesprochenen Sprachen.
- Finde die 10 bevölkerungsreichsten Länder.
🎉 HERZLICEN GLÜCKWUNSCH! 🎉