In Python sind Funktionen ein zentrales Werkzeug, um Code zu strukturieren, wiederzuverwenden und lesbar zu machen. Lambda-Ausdrücke sind eine spezielle Form von Funktionen, die besonders kurze, anonyme Funktionen ermöglichen. In Data Science helfen beide, Berechnungen effizient durchzuführen und Daten zu transformieren.
1. Was ist eine Funktion?
Eine Funktion ist ein Codeblock, der eine bestimmte Aufgabe erfüllt. Sie kann Parameter erhalten, Werte zurückgeben und beliebig oft aufgerufen werden.
def begruessung():
print("Hallo, willkommen in Python!")
defleitet die Funktionsdefinition ein- Funktionsname:
begruessung - Codeblock wird bei jedem Aufruf ausgeführt:
begruessung()
# Ausgabe: Hallo, willkommen in Python!
2. Funktionen mit Parametern
Funktionen können Eingaben erhalten, um flexibler zu arbeiten.
def begruessung(name):
print(f"Hallo {name}, willkommen!")
begruessung("Anna")
begruessung("Ben")
- Ausgabe:
Hallo Anna, willkommen! Hallo Ben, willkommen!
3. Rückgabewerte mit return
Funktionen können Werte zurückgeben, die weiterverwendet werden:
def addiere(a, b):
return a + b
ergebnis = addiere(5, 3)
print(ergebnis) # 8
returnbeendet die Funktion und liefert den Wert zurück
Praxisbeispiel: Umsatzberechnung
def berechne_umsatz(preis, anzahl, rabatt=False):
umsatz = preis * anzahl
if rabatt:
umsatz *= 0.9 # 10% Rabatt
return umsatz
umsatz = berechne_umsatz(19.99, 5, rabatt=True)
print(f"Umsatz: {umsatz:.2f} €") # 89.95 €
4. Standardwerte für Parameter
Man kann Standardwerte definieren, die verwendet werden, wenn kein Wert übergeben wird:
def begruessung(name="Gast"):
print(f"Hallo {name}!")
begruessung() # Hallo Gast!
begruessung("Anna") # Hallo Anna!
**5. Variable Anzahl von Argumenten: *args und kwargs
*args– beliebig viele Positionsargumente**kwargs– beliebig viele benannte Argumente
def summe(*zahlen):
ergebnis = 0
for zahl in zahlen:
ergebnis += zahl
return ergebnis
print(summe(1,2,3,4)) # 10
def info(**person):
for key, value in person.items():
print(f"{key}: {value}")
info(Name="Anna", Alter=28, Beruf="Data Scientist")
- Ausgabe:
Name: Anna Alter: 28 Beruf: Data Scientist
6. Lambda-Ausdrücke
Lambda-Funktionen sind kurze, anonyme Funktionen, die nur aus einer Zeile bestehen:
quadriere = lambda x: x**2
print(quadriere(5)) # 25
- Keine
def-Syntax notwendig - Praktisch für einfaches Mapping oder Filter
Praxisbeispiel mit map
zahlen = [1, 2, 3, 4]
quadrate = list(map(lambda x: x**2, zahlen))
print(quadrate) # [1, 4, 9, 16]
7. Lambda mit filter
Filtert Werte nach einer Bedingung:
zahlen = [10, 15, 20, 25, 30]
gerade = list(filter(lambda x: x % 2 == 0, zahlen))
print(gerade) # [10, 20, 30]
filterliefert nur die Werte, die True zurückgeben
8. Lambda mit reduce
reduce aus functools reduziert eine Liste auf einen Wert:
from functools import reduce
zahlen = [1,2,3,4,5]
summe = reduce(lambda x, y: x+y, zahlen)
print(summe) # 15
- Praktisch für kumulative Berechnungen
9. Praxisbeispiel: Data Transformation
Angenommen, wir haben eine Liste von Preisen in Euro, und wir wollen Preise inklusive 19% MwSt berechnen:
preise = [10, 20, 30, 40]
mwst_preise = list(map(lambda x: x*1.19, preise))
print(mwst_preise) # [11.9, 23.8, 35.7, 47.6]
- Lambda +
mapersetzt eine Schleife und ist kompakt
10. Vorteile von Funktionen
- Wiederverwendbarkeit – Code muss nicht mehrfach geschrieben werden
- Lesbarkeit – komplexe Berechnungen können in Module ausgelagert werden
- Parameter – Funktionen können flexibel auf unterschiedliche Daten angewendet werden
- Modularität – einzelne Teile eines Projekts lassen sich isoliert testen
11. Tipps für Data Science
- Kleine Funktionen schreiben – eine Funktion sollte eine Aufgabe erledigen
- Lambda sparsam verwenden – nur für einfache Transformationen
- Dokumentation – jede Funktion mit Docstring dokumentieren:
def addiere(a, b):
"""
Addiert zwei Zahlen und gibt das Ergebnis zurück.
"""
return a + b
- Funktionen für Pandas – später können Funktionen zusammen mit
apply()verwendet werden, um DataFrames effizient zu transformieren
Schreibe einen Kommentar