def square(num):
"""Berechnen und zurückgeben des Quadrats einer Zahl."""
return num * num
Funktionen
⬇️ Jupyter Notebook herunterladen
Funktionen helfen Ihnen, modulare, wiederverwendbare Codeblöcke zu schreiben. In diesem Abschnitt wird das Definieren, Aufrufen und Dokumentieren von Funktionen demonstriert.
Einfache Funktion
Wir beginnen mit der Erstellung einer Funktion zur Berechnung des Quadrats einer Zahl.
Funktion definieren
Erläuterungen:
- Funktionsdefinition:
- Das Schlüsselwort
def
signalisiert den Beginn einer Funktionsdefinition. - Der Name der Funktion folgt direkt danach. In diesem Fall ist der Funktionsname
square
. - Die Klammern
()
enthalten die Parameterliste der Funktion. Hier gibt es einen Parameter,num
, der eine Zahl repräsentiert, deren Quadrat berechnet werden soll.
- Das Schlüsselwort
- Docstring:
- Ein Docstring ist ein kurzer beschreibender Text, der die Funktion erklärt. Er wird zwischen dreifachen Anführungszeichen
"""
geschrieben. - Der Docstring dieser Funktion lautet:
"Berechnen und zurückgeben des Quadrats einer Zahl."
- Docstrings sind nützlich, um den Zweck der Funktion und ihre Funktionsweise zu dokumentieren. Sie sind besonders hilfreich für andere Programmierer/innen oder für Sie selbst, wenn Sie den Code später wieder verwenden oder ändern möchten.
- Ein Docstring ist ein kurzer beschreibender Text, der die Funktion erklärt. Er wird zwischen dreifachen Anführungszeichen
- Berechnung des Quadrats:
- Die Funktion verwendet die Formel
num * num
, um das Quadrat der Zahl zu berechnen. Dies bedeutet, dass die Zahlnum
mit sich selbst multipliziert wird. - Beispielsweise, wenn
num
gleich 3 ist, berechnet die Funktion3 * 3
, was 9 ergibt.
- Die Funktion verwendet die Formel
- Rückgabe des Ergebnisses:
- Das Schlüsselwort
return
weist die Funktion an, das Ergebnis der Berechnung zurückzugeben. - In diesem Fall gibt
return num * num
das berechnete Quadrat der Zahlnum
zurück. - Wenn die Funktion aufgerufen wird, wird der zurückgegebene Wert an die Stelle des Funktionsaufrufs übergeben.
- Das Schlüsselwort
Funktion verwenden
Beispiel für die Verwendung der Funktion:
# Aufruf der Funktion square mit dem Argument 4
= square(4) result
- Wir rufen die Funktion
square
mit dem Argument4
auf. - Die Funktion berechnet das Quadrat von 4 und gibt 16 zurück.
- Der zurückgegebene Wert wird in der Variable
result
gespeichert.
Ergebnis anzeigen
Einfache Ausgabe des Ergebnisses mit Hilfe von print()
:
print(result) # Dies wird 16 ausgeben, da 4 * 4 gleich 16 ist
16
- In diesem Code wird der Wert von
result
mitprint
ausgegeben, was 16 ist.
Als Alternative dazu kann eine print
-Funktion mit einem f-String verwendet werden. Dies ist eine formatierte Zeichenkette, die mit f
vorangestellt ist und das Einfügen von Variablen innerhalb von {}
geschweiften Klammern ermöglicht:
print(f"Quadrat von 4: {result}")
Quadrat von 4: 16
Vorteile von f-Strings:
- Sie bieten eine intuitive Möglichkeit, Variablen in Zeichenketten einzufügen.
- Unterstützung für Formatierungen ist eingebaut (z.B. Runden von Dezimalstellen).
Funktion mit mehreren Parametern
Funktionen können mehr als einen Parameter akzeptieren. Hier ist eine Funktion, die die Fläche eines Rechtecks berechnet:
# Funktion zur Berechnung der Fläche eines Rechtecks
def calculate_rectangle_area(length, width):
"""Berechnen der Fläche eines Rechtecks anhand seiner Länge und Breite."""
return length * width
Verwendung der Funktion mit Beispielwerten:
= 10
length = 5 width
length
undwidth
sind Parameter, die die Funktion zur Berechnung der Fläche des Rechtecks verwendet.
Funktion verwenden:
= calculate_rectangle_area(length, width) area
calculate_rectangle_area
wird mit bestimmten Werten aufgerufen.
Ergebnis anzeigen:
print(f"Rechteck mit Länge {length} und Breite {width} hat eine Fläche von {area}")
Rechteck mit Länge 10 und Breite 5 hat eine Fläche von 50
- Der f-String innerhalb der
print
-Anweisung liefert eine Ausgabe, die sowohl die Eingabewerte als auch das berechnete Ergebnis zeigt.
Standardparameter
Standardwerte für Parameter werden verwendet, wenn keine Argumente bereitgestellt werden.
# Funktion mit einem Standardparameterwert
def greet(name="zusammen"):
"""Begrüßen einer Person mit ihrem Namen oder mit 'Hallo zusammen' als Standard."""
print(f"Hallo {name}!")
- Der Parameter
name="zusammen"
liefert einen Standardwert.
Aufruf der Funktion mit einem bestimmten Namen:
"Alice") greet(
Hallo Alice!
- Beim Aufruf von
greet("Alice")
wird “Hallo Alice!” ausgegeben.
Aufruf der Funktion ohne Argument (verwendet den Standardwert):
greet()
Hallo zusammen!
- Der Aufruf von
greet()
ohne Argumente verwendet den Standardwert “zusammen”.
Lambda-Funktionen
Lambda-Funktionen sind kleine, anonyme Funktionen in Python, die besonders nützlich sind für kurze Operationen oder wenn Funktionen als Argumente an andere Funktionen übergeben werden sollen. Sie sind eine kompakte Art, Funktionen zu schreiben, ohne sie zwingend mit einem Namen zu versehen.
Lambda-Funktionen sind einfache Funktionen, die in einer einzigen Zeile definiert werden können. Sie werden mit dem Schlüsselwort lambda
erstellt. Diese Funktionen können beliebig viele Argumente haben, aber nur einen Ausdruck, der ausgewertet und zurückgegeben wird.
Beispiel-Funktion
Hier ist ein einfaches Beispiel für eine Lambda-Funktion, die zwei Zahlen addiert:
# Lambda-Funktion zum Addieren zweier Zahlen
= lambda x, y: x + y add
lambda x, y:
definiert die Lambda-Funktion mit den Argumentenx
undy
.- Der Ausdruck
x + y
wird berechnet und als Ergebnis zurückgegeben.
Nachdem wir die Lambda-Funktion definiert haben, können wir sie wie jede andere Funktion aufrufen. Hier ist ein Beispiel, wie man die oben definierte add
Lambda-Funktion verwendet:
# Aufrufen der Lambda-Funktion mit den Argumenten 3 und 5
= add(3, 5) result
Um das Ergebnis zu sehen, können wir es ausdrucken:
# Ausgabe des Ergebnisses
print(f"Summe von 3 und 5: {result}")
Summe von 3 und 5: 8
Lambda-Funktion mit map und filter
Lambda-Funktionen sind besonders nützlich, wenn Sie eine Funktion nur vorübergehend benötigen, zum Beispiel als Argument für eine andere Funktion wie map()
und filter()
.
Die
map
-Funktion wird verwendet, um eine gegebene Funktion auf alle Elemente einer Liste oder einer anderen iterierbaren Sequenz anzuwenden und ein neues Objekt mit den Ergebnissen zurückzugeben.Die
filter
-Funktion wird verwendet, um Elemente aus einer iterierbaren Sequenz herauszufiltern, die eine bestimmte Bedingung erfüllen. Die Bedingung wird durch eine Funktion bestimmt, die entweder True oder False zurückgibt.
Hier sind zwei Beispiele, in denen Lambda-Funktionen nützlich sein können:
In Kombination mit map():
# Lambda-Funktion zum Quadrieren von Zahlen = [1, 2, 3, 4] numbers = list(map(lambda x: x ** 2, numbers)) squared_numbers print(squared_numbers) # Ausgabe: [1, 4, 9, 16]
[1, 4, 9, 16]
In Kombination mit filter():
# Lambda-Funktion zum Filtern von geraden Zahlen = [1, 2, 3, 4, 5, 6] numbers = list(filter(lambda x: x % 2 == 0, numbers)) even_numbers print(even_numbers) # Ausgabe: [2, 4, 6]
[2, 4, 6]
Lambda-Funktionen sind also eine flexible und effiziente Möglichkeit, kleine Funktionen schnell und unkompliziert zu definieren.
Lambda-Funktionen mit DataFrames
Lambda-Funktionen sind auch dann hilfreich, wenn Sie eine benutzerdefinierte Transformation auf jede Zeile oder Spalte eines DataFrames anwenden möchten.
Zum Beispiel, wenn Sie Zahlen basierend auf bestimmten Bedingungen klassifizieren möchten, kann eine Lambda-Funktion helfen.
Beispielcode:
# Erstellen eines DataFrame und Verwendung einer Lambda-Funktion für eine benutzerdefinierte Klassifizierung
import pandas as pd
# Beispiel-DataFrame
= {"Numbers": [1, 2, 3, 4, 5, 15, 20, 25]}
data = pd.DataFrame(data)
df
# Definieren einer benutzerdefinierten Funktion zur Klassifizierung von Zahlen
def classify_number(num):
if num < 10:
return "Einstellig"
elif num < 20:
return "Teenager"
else:
return "Zwanzig oder mehr"
# Anwenden der benutzerdefinierten Funktion mit einer Lambda-Funktion zur Erstellung einer neuen Spalte
"Klassifizierung"] = df["Numbers"].apply(lambda x: classify_number(x))
df[
# Anzeigen des DataFrame
df
Numbers | Klassifizierung | |
---|---|---|
0 | 1 | Einstellig |
1 | 2 | Einstellig |
2 | 3 | Einstellig |
3 | 4 | Einstellig |
4 | 5 | Einstellig |
5 | 15 | Teenager |
6 | 20 | Zwanzig oder mehr |
7 | 25 | Zwanzig oder mehr |
Erläuterung:
- Der DataFrame
df
wird mit einer SpalteNumbers
erstellt, die eine Reihe von Werten enthält. - Die Funktion
classify_number
definiert benutzerdefinierte Klassifizierungskriterien:- Weniger als 10 ist “Einstellig”.
- Weniger als 20, aber nicht unter 10 ist “Teenager”.
- Werte ab 20 sind “Zwanzig oder mehr.”
- Die Methode
apply
verwendet eine Lambda-Funktion, um jeden Wert vonNumbers
durchclassify_number
zu übergeben. - Das Ergebnis ist eine neue Spalte
Klassifizierung
, die die kategorisierten Werte enthält.
In diesem Fall ist die Verwendung einer Lambda-Funktion mit apply
vorteilhaft, um den DataFrame schnell zu transformieren, basierend auf einer Funktion, die sonst das Durchlaufen jedes Wertes einzeln erfordern würde.