Funktionen in Python dienen zum Auslagern von Programmteilen. Man übergibt beim Funktionsaufruf Werte und erhält von der Funktion einen berechneten Wert zurück. Dadurch werden Programme übersichtlicher, die Fehlersuche vereinfacht sich und Programmteile sind mehrfach verwendbar.
In diesem Artikel lernst Du den Aufbau von Funktionen und deren Anwendung kennen. Begriffe wie Rückgabewert, Parameter und Funktionsname werden erklärt.
Große Apfelmengen werden in Pressen zu vielen Litern Apfelsaft umgearbeitet. Die Arbeit übernimmt die Presse für viele Obstbauern, die Arbeit wird ausgelagert. Das gleiche Prinzip kann man beim Programmieren anwenden. Wir lagern bestimmte Aufgaben in eigene Unterprogramme aus. Die so erstellten Funktionen erhöhen die Struktur/Übersichtlichkeit und sind mehrfach von Vielen verwendbar. Die Fehlersuche wird vereinfacht und Arbeiten in Projekten lassen sich besser aufteilen.
Für die Berechnung der Saftmenge soll folgende Tabelle verwendet werden:Apfelsorte | Gala | Elstar | Delicious |
Saftausbeute pro 100 kg | 75 | 68 | 82 |
Das Schlüsselwort def
leitet eine Funktionsdefinition ein. Es wird ein Name für die Funktion festgelegt, gefolgt von einem Doppelpunkt. Der Inhalt der Funktion muss eingerückt werden.
Beachte: Funktionsnamen beginnen in der Regel mit einem Kleinbuchstaben, da die Funktion etwas ausführt. Außerhalb der Funktion wird der Text wieder ausgerückt.
def meinGedicht():
print("Ein Hund lief in die Küche")
print("und stahl dem Koch einen Apfel.\n")
for i in range(5):
meinGedicht()
def
gekennzeichnet. Im folgt ein frei wählbarer Name mit Doppelpunkt. Der Inhalt der Funktion wird eingerückt.
Jeder Funktion können Werte mitgegeben werden. Diese Parameter schreibt man in die Klammern hinter dem Funktionsname.
def begruesse(name):
print(f"Hallo {name},\n wir freuen uns ...")
Beim Funktionsaufruf müssen nun die Parameter mit angegeben werden:
namen = ["Anna", "Michael", "Daniel"]
for name in namen:
begruesse(name)
In der Parameterliste werden die einzelnen Werte/Variablen mit Komma getrennt geschrieben. Bei mehreren Parametern ist die Reihenfolge der Parameter bei der Definition und dem Aufruf der Funktion identisch zu wählen. Auch Listen dürfen übergeben werden.
Rückgabewert verwenden:
def verdopple(x):
return: x*2
Beim Aufruf ist darauf zu achten, dass man den Rückgabewert in einer Variablen speichert:
y = verdopple(3)
Hallo Frau Müller,
Sie haben 12 kg Äpfel 🍎 gekauft.
Vielen Dank für Ihren Einkauf!
def begruesse(name, isMale, menge):
print(f"Hallo {"Herr" if isMale else "Frau"} {name}," )
print(f"Sie haben {menge} kg Äpfel gekauft.")
print("Vielen Dank für Ihren Einkauf!")
begruesse("Müller", False, 12)
100.0 kg Gala ergeben 75.0 l Saft.
Genieße dein Getränk 🥃!
def berechneSaftmenge(sorte: str, menge: int) -> float:
if sorte == "Gala": saft = 0.75*menge
else: saft = 0.68*menge
return saft
sorte = input("Wähle: Gala, Elstar")
menge = float(input("Gib die Menge in kg ein: "))
saft = berechneSaftmenge(sorte, menge)
print(f"{menge} kg {sorte} ergeben {saft:.1f} l Saft.")
return
gibt in der Funktion an, welcher Wert nach dem Aufruf zurück gegeben wird. Dieser Wert muss beim Aufruf in einer Variable gespeichert werden.
Die benötigte Menge Holzdielen soll für eine vorgegebene Raumgröße in einer Funktion berechnet werden.
05-Funktionen.ipynb
an.Holzdielen
und definiere die Funktione berechneLaufendeMeterDielen
. Der Funktion wird die Raumgröße in Quadratmeter übergeben und sie liefert die Holzmenge von 0,2 m breiten Holzdielen in laufenden Metern.Um bei einer Raumgröße von 8 m2 die laufenden Meter zu erhalten, teil man diesen Wert durch 0,2: 8 m2/0,2 m = 40 m
berechneLaufendeMeterDielen
wird aufgerufen und das Ergebnis am Bildschirm ausgegeben.Die Ausgabe sollte wie folgt aussehen:
Raumgröße: 12.5 qm
Laufende Meter Dielen: 62.5 m
Ordne den Funktionsaufruf dem Funktionskopf zu oder finde die Fehler.
Welcher Aufruf passt zum Funktionskopf? Wähle eine Antwort.
def add(a: int, b: float) -> int: ..
summe: float = add(2, 3.2)
summe: float = add(3.2, 2)
summe: int = add(2, 3.2)
summe: int = add(2.3, 3)
Welcher Funktionskopf passt zu dem Aufruf? Wähle eine Antwort.
add(4,3.41)
def add2(a: float, b: float) -> int: ..
def add2(a: int, b: float): ..
def add2(a: int, b: float) -> int: ..
def add2(a: str, b: float): ..
Finde die Anzahl der Fehler im folgenden Quelltext.
def suche(a: str, p: int) -> str:
pass
platz: int = suche("a", "b")
Finde die Anzahl der Fehler im folgenden Quelltext.
bestimmeMenge(a: int, b: int) -> int:
pass
a: int = 4
terassengroesse: int = bestimmeMenge(a,12)
Welcher Aufruf passt zum Funktionskopf? Wähle eine Antwort.
def anzeigen( ): ..
summe: float = anzeigen( )
anzeigen(2)
anzeigen( )
anzeigen("a")
Welcher Funktionskopf passt zu dem Aufruf? Wähle eine Antwort.
x: float = berechne(4,3.41)
def berechne(a: int, b: float) -> float: ..
def berechne(int a, double b) -> int: ..
def berechne(a: bool, b: float) -> float: ..
def berechne(a: bool, b: float) -> str: ..
Zum Einkaufen von frischem Apfelsaft wird ein Programm geschrieben: Man wählt die Apfelsorte, Menge und erhält als Ausgabe entsprechend die Saftmenge und Preise angezeigt.
Hallo Frau Müller,
Sie haben 100 kg Gala 🍎 gekauft.
100.0 kg Gala ergeben 75.0 l Saft.
Ihr Warenkorb 🛒
100 kg Gala ⋅ 0.42 €/kg: 42.00 €
75 l Saft ⋅ 0.07 €/l: 5.25 €
Grundgebühr: 10.00 €
Gesamt: 57.25 €
def begruesse(name: str, isFemale: bool)
.def berechneSaftmenge(sorte: str, menge: int) -> float
für mindestens drei Apfelsaftsorten. Bei nicht vorhandener Sorte soll eine Fehlermeldung erscheinen.def anzeigenWarenkorb(sorte, menge, saftmenge)
.Eine Pyramide hat eine rechteckige Grundfläche mit den den Seiten $a$ und $b$ und der Höhe $h$. Die Grundfläche $G$ und das Volumen $V$ berechnet sich wie folgt:
$G=ab$ und $V=\frac{G\cdot h}{3}$.
Pyramide
und definiere die Funktion berechnePyramidenVolumen
.berechnePyramidenVolumen
auf. Der Funktion werden die beiden Seitenlängen und die Höhe der Pyramide übergeben. Das zurückgegebene Volumen wird am Monitor ausgegeben.Die Lösung sollte folgendermaßen aussehen:
Berechnung des PyramidenvolumensDie Mehrwertsteuer beträgt Anfang 2019 in Deutschland 19 %. Bedingt durch die Coronakrise wird diese im Juli 2020 um drei Prozentpunkte auf 16 % gesenkt.
Mehrwehrtsteuer
und definiere die Funktion def berechneSteuervorteil(...) -> float
.berechneSteuervorteil
auf. Der Funktion wird der Bruttobetrag als Parameter übergeben. Die zurückgegebene Steuerersparnis bei verringertem Mehrwertseteuersatz soll ausgegeben werden.def berechneMehrwertsteuer (...):
, welche den Nettobetrag, den Mehrwertsteuerbetrag und den Bruttobetrag ausgibt.Die Lösung sollte folgendermaßen aussehen:
MehrwertsteuerrechnerIdee: I. Supper
Du fährst mit dem Auto und hältst eine konstante Geschwindigkeit ein.
Auf deiner linken Seite befindet sich ein Abhang. Auf deiner rechten Seite fährt ein riesiges Feuerwehrauto und hält die gleiche Geschwindigkeit wie du. Vor dir galoppiert ein Schwein, das eindeutig größer ist als dein Auto und du kannst nicht vorbei. Hinter dir verfolgt dich ein Hubschrauber auf Bodenhöhe. Das Schwein und der Hubschrauber haben exakt deine Geschwindigkeit.
Was unternimmst du, um dieser Situation gefahrlos zu entkommen?
Vom Kinderkarusell steigen und weniger Glühwein trinken.
GroessteZahl
und definiere die Funktion def ziehe6aus49(reihe)
zum Erzeugen der Zahlenliste.def ausgebenZahlenreihe (x)
um die unsortierte Zahlenreihe am Monitor auszugeben.def bubblesort(bubblereihe)
um die Zahlenreihe zu sortieren.from random import randint def get_random_num_list(length: int) -> list[int]: num_list: list[int] = [] for i in range(length): num_list.append(randint(0, 1000)) print(num_list) return num_list
Die Lösung sollte folgendermaßen aussehen:
Die unsortierte Zahlenreihe:die Funktion, -n | Eine Funktion ist ein ausgelagerter Programmteil. |
die Funktionsdefinition | Die Funktion wird definiert durch den Funktionskopf und den Funktionsrumpf. Der Funktionskopf besteht aus Modifier, Datentyp des Rückgabewertes, Funktionsname und der Parameterliste; der Funktionsrupf aus den Anweisungen inkl. der Rückgabe. |
der Funktionsname, -n | Der Funktionsname beginnt klein mit einem Verb, da die Funktion etwas ausführt. |
die Parameterliste, -n | eine Liste von Datentypen mit Variablennamen, welche beim Funktionsaufruf übergeben werden |
der Funktionsaufruf, -e | Aufruf eines ausgelagerten Programmteils |
der Rückgabewert, -e | Wert der aus einer Funktion zurückgegeben wird |