Selbstdefinierte Funktionen#
Selbstdefinierte Funktionen helfen eine wiederkehrende Aufgabe zu erfüllen und den Code übersichtlich zu halten.
Syntax#
def
ist das Schlüsselwort für eine Funktionsdefinition. Darauf folgt der Funktionsname, runde Klammern und ein Doppelpunkt. Alle Anweisungen, die eingerückt stehen werden beim Funktionsaufruf ausgeführt.
Aufgerufen wird die Funktion über <funktions_name>()
.
Beispiele#
# Funktion die Hallo Welt auf der Konsole ausgibt
def say_hello_world():
print('Hallo Welt')
say_hello_world()
Hallo Welt
Parameter#
Funktionen können flexibler gestaltet werden, in dem Eingabeparameter definiert werden.
Innerhalb dieser Funktion können diese Parameter wie ganz normale Variablen benutzt werden.
# Funktion die Hallo XY! auf der Konsole ausgibt
def say_hello(name):
print(f'Hallo {name}!')
say_hello('Max')
Hallo Max!
say_hello('Anne')
Hallo Anne!
Es können beliebig viele Parameter übergeben werden.
# Funktion die drei Zahlen aufaddiert
def add_three_numbers(a, b, c):
print(a + b + c)
add_three_numbers(3,9,1)
13
Optionale Parameter#
Ein Parameter ist optional wenn in der Funktionsdefinition ein default Wert definiert wird
# Funktion die bis zu drei Zahlen aufaddiert
def add_numbers(a, b=0, c=0):
print(a + b + c )
add_numbers(7,2,1)
add_numbers(8,9)
add_numbers(3)
10
17
3
Funktionen mit Rückgabewert#
Die Beispielfunktionen haben bisher Werte auf der Konsole ausgegeben.
Die Anwendung von Funktionen ist jedoch meist, dass sie Werte entgegen nehmen, diese modifizieren oder auf deren Grundlage etwas neues berechnen. Das Ergebnis wird zurückgegeben, damit im Hauptprogramm damit weitergearbeitet werden kann.
Dafür wird return
am Ende einer Funktion benutzt.
Beispiel#
# Funktion die einen String bearbeitet
def clean_string(string):
return string.lower().strip().title()
var = ' haLLO wELt! '
clean_var = clean_string(var)
print(clean_var)
Hallo Welt!
# Funktion die den größeren Wert zurück gibt
def get_maximum(wert1, wert2):
if wert1 > wert2:
return wert1
return wert2
maximum = get_maximum(13, 9)
print(maximum)
13
maximum = get_maximum(3, 8)
print(maximum)
8