def sag_hallo():
return "Hallo!"
Function Basics
Ein Grundprinzip von Programmieren ist “DRY” (Don’t repeat yourself). Wenn unser Script viele ähnliche Codezeilen enthält ist das ein Zeichen dafür, dass man besser eine Function schreiben sollte. Das hat viele Vorteile: Unter anderem wird der Code lesbarer, einfacher zu warten und kürzer.
Um mit Python gut zurechtzukommen ist das Schreiben von eigenen Functions unerlässlich. Dies ist auch nicht weiter schwierig: Eine Function wird mit def
eingeleitet, braucht einen Namen, einen Input und einen Output.
Wenn wir zum Beispiel eine Function erstellen wollen die uns grüsst, so geht dies folgendermassen:
- Mit
def
sagen wir: “Jetzt definiere ich eine Function”. - Danach kommt der Name der Function, in unserem Fall
sag_hallo
(mit diesem Namen können wir die Function später wieder aufrufen). - Als Drittes kommen die runden Klammern, wo wir bei Bedarf Inputvariablen (sogenannte Parameter) festlegen können. In diesem ersten Beispiel habe ich keine Parameter festgelegt.
- Nach der Klammer kommt ein Doppelpunkt was bedeutet: “jetzt wird gleich definiert, was die Funktion tun soll”.
- Auf einer neuen Zeile wird eingerückt festgelegt, was die Function eben tun soll. Meist sind hier ein paar Zeilen Code vorhanden.
- Die letzte eingerückte Zeile (in unserem Fall ist das die einzige Zeile) gibt mit
return
an, was die Function zurück geben soll (der Output). In unserem Fall soll sie “Hallo!” zurück geben.
Das war’s schon! Jetzt können wir diese Function schon nutzen:
sag_hallo()
'Hallo!'
Diese Function ohne Input ist wenig nützlich. Meist wollen wir der Function etwas - einen Input - übergeben können. Beispielsweise könnten wir der Function unseren Vornamen übergeben, damit wir persönlich gegrüsst werden:
def sag_hallo(vorname):
return "Hallo " + vorname + "!"
Nun können wir der Function ein Argument übergeben. In folgendem Beispiel ist vorname
ein Parameter, “Guido” ist sein Argument.
= "Guido") sag_hallo(vorname
'Hallo Guido!'
Wir können auch eine Function gestalten, die mehrere Parameter annimmt. Beispielweise könnte sag_hallo()
zusätzlich noch einen Parameter nachname
erwarten:
def sag_hallo(vorname, nachname):
return "Hallo " + vorname + " " + nachname + "!"
= "Guido", nachname = "van Rossum") sag_hallo(vorname
'Hallo Guido van Rossum!'