Tagebuch-Eintrag #21
Funktionen in Python mit def
Es sollte ruhige Tage werden und sein zwischen Weihnachten und Neujahr. Aber irgenwie möchte ich dieses Jahr noch unbedingt das Thema Funktionen in Python angehen und verstehen.
Funktionen gibt es sicherlich für alle Programmiersprachen und ich kenne Funktionen auch bei WordPress-Themes, wobei das natürlich nicht Python, sondern in PHP geschrieben wird.
Also ist das in der Theorie erstmal nichts neues für mich. Theorie und Praxis… naja 😉
Was sind Funktionen in Python
Für meinem Verständnis sind Funktionen Programmier-Codes, die zunächst nur definiert werden, aber noch keine Funktionen haben oder noch nicht aktiv sind. Sie sind da, aber irgenwie doch nicht 😉
Um den Programmier-Code – also die Funktion – zu aktivieren, muss die Funktion an einer beliegen Stelle abgerufen werden.
Funktionen in Python erstellen
Um eine Funktion in Python zu erstellen, muss das Schlüsselwort def verwendet werden, gefolgt mit der Name der Funktion und runde Klammern () und Dopplepunkt :
Anschließen wird mit einer Einrückung der Programm-Code geschrieben, welches beim Aufruf der Funktion ausgeführt werden soll.
# Eine einfache Funktion definieren.
def hello():
print("Dieser Text wird über die Funktion \"hello\" ausgegeben")
# Funktion "hello" wird im Programm ausgegeben
hello()
Die Ausgabe sind dann so aus:

Funktion kann auch mehr als nur den dazugehörigen Programmier-Code ausgeben, wenn kann auch interagieren. Dafür kann für die Funktion einen Wert beim Aufruf der Funktion übergeben werden.
# Funktion mit Übergabe eines Wertes
def hi(name):
print("# Funktion hi(name)")
print ("Hi", name)
hi("Jing!")
Ich weise der Funktion hi() einen „Platzhalter“ (eigentlich Variable, aber für meinen eigenen Verständnis nutze ich hier das Wort Platzhalter) name hinzu: hi(name) gebe den „Platzhalter“ im Code innerhalb der Funktion auch wieder aus. Ich rufe die Funktion hi() dann mit einem Wert in den runden Klammern auf: hi(„Jing!“) und der Wert wird dem „Platzhalter“ zugewiesen. Als Ausgabe erfolgt dann: Hi Jing!
Ziemlich cool!

Werte mit input-Befehl
Aber es kommt noch besser, ich kann für den obigen Beispiel sogar den input-Befehl verwenden, um einen individuellen Wert für name zuzuweisen.

Kann sicher für diverse Programme verwendet werden, um den Anwender zu begrüßen.
Mehrere Werte übergeben
Statt einem, können auch mehrere Werte in die Funktion übergeben werden. Ich habe es zur Übung mit RGB-Farben getestet, was anderes fiel mir spontan nicht ein und ich wollte nicht immer wieder Namen und so dafür herhalten 😉
# Funktion mit Übergabe mehrerer Werte
def colors(one,two,three,four):
print("# colors(one,two,three,four)")
print ("RGB-Farbe #1:", one)
print ("RGB-Farbe #2:", two)
print ("RGB-Farbe #3:", three)
print ("Alle RGB-Farben", one + ",", two, "&", three, "gemischt ergeben die Farbe", four)
colors("Rot", "Grün", "Blau", "Weiß")

Funktion beliebig oft aufrufen.
Ich hatte anfangs erwähnt, dass die Funktion erst ausgeführt wird, wenn es auch im Hauptprogramm aufgerufen und aktiviert wird. Die kann natürlich nicht nur einmal geschehen, sondern auch mehrmals. Und auch dies musste ich natürlich testen und ausprobieren.
Ich folgenden Code habe ich als erstes eine Funktion erstellt, um einen „Trenner“ auszugeben, wenn die Funktion aufgerufen wird. Dieser Trenner soll beim Ausführen zwischen jeder Ausgabe sein, damit es visuell besser getrennt wird wann welche Funktion beginnt.
# Funktion Trenner-Block
def divider():
print("---------------")
print("### TRENNER ###")
print("---------------")
# Eine einfache Funktion definieren.
def hello():
print("Dieser Text wird über die Funktion \"hello\" ausgegeben")
# Funktion "hello" wird im Programm ausgegeben
hello()
divider()
# Funktion mit Übergabe mehrerer Werte
def colors(one,two,three,four):
print("# colors(one,two,three,four)")
print ("RGB-Farbe #1:", one)
print ("RGB-Farbe #2:", two)
print ("RGB-Farbe #3:", three)
print ("Alle RGB-Farben", one + ",", two, "&", three, "gemischt ergeben die Farbe", four)
colors("Rot", "Grün", "Blau", "Weiß")
divider()
# Funktion mit Übergabe eines Wertes
def hi(name):
print("# Funktion hi(name)")
print ("Hi", name)
hi("Jing!")
divider()
# Funktion mit Übergabe eines Wertes mit input-Befehl
def welcom(name):
print("# Funktion hi(name)")
print ("Hi", name)
your_name = input ("Dein Name: ")
welcom(your_name)
divider()
Den Trenner rufe ich dann mit divider() auf. Zu sehen in den Zeilen 11, 20, 26 und 33. Es ist auch zu sehen, dass obwohl ich die Funktion für den Trenner zuerst geschrieben habe und ganz am Anfang ist, die Ausgabe wirklich erst erfolgt, wenn ich es mit divider() aufrufe.

Ein ziemlich langer Tagebuch-Eintrag für heute. Aber ich glaube, ich habe die Grundlage für Funktionen verstanden. Als nächste möchte ich schauen, wie man die Funktionen von anderen Dateien aus aufrufen kann.