Recycling mit Struktur – Funktionen

Eine Funktion in der Informatik ist wie ein kleines Programm innerhalb eines größeren Programms. Sie enthält einen Block von Code, der eine bestimmte Aufgabe ausführt. Funktionen werden verwendet, um den Code in kleinere, wiederverwendbare Teile zu zerlegen und so den Programmieraufwand zu verringern und die Lesbarkeit und Wartbarkeit von Programmen zu verbessern.

Nachdem du eine Funktion programmiert hast, kannst du sie Benutzen wie einen „normalen“ Befehl.

In Python kannst du eine Funktion erstellen, indem du definiert, wie sie heißt und was sie tun soll. Das Schlüsselwort zur Definition einer Funktion lautet def. Es steht zu Beginn einer jeden Funktion.

Beispiel

Im folgenden Beispiel wird eine Funktion definiert, die durch eine Schleife die Zahlen von eins bis Zehn ausgibt. Anschließend wird sie aufgerufen. Ohne den Aufruf geschieht einfach nichts.

def einsBisZehn():                      # Eine Funktion beginnt mit dem Schlüsselwort "def" und dem Namen der Funktion.
                                        # Dahinter steht im einfachsten Fall ein Paar normaler Klammern. Dazu später mehr.
  print("Die Zahlen von 1 bis 10")      # Es folgt darauf der Programmabschnitt, der bei Aufruf ausgefuehrt werden soll.
  i = 1                                 # Er ist um eine Ebene eingerueckt.
  while i < 11:
    print(i)
    i = i + 1

einsBisZehn()                           # Hier wird die Funktion wie ein normaler Befehl aufgerufen.
                                        # Beachte die Gross- und Kleinschreibung.

Parameter

Aus der Mathematik kennst du möglicherweise bereits Parameter. Betrachtest du zum Beispiel eine Funktion f(x), so ist x ein Parameter, also ein Wert, der später eingesetzt und mit dem weitergerechnet wird.

Die selbe Aufgabe erfüllen Parameter in der Programmierung. Sie dienen dazu einer Funktion einen oder mehrere Werte zu übergeben, mit denen dann weitergearbeitet wird.

Beispiel 1

def addiereZweiZahlen(s1, s2):
  summe = s1 + s2
  print(summe)

In diesem Beispiel haben wir eine Funktion namens „addiereZweiZahlen“ erstellt, die zwei Zahlen addiert und die Summe zurückgibt. Die Funktion erwartet zwei Eingaben (zahl1 und zahl2), die sie benötigt, um die Summe zu berechnen.

Wenn du diese Funktion in deinem Code verwenden möchtest, kannst du sie einfach aufrufen und die Eingaben eingeben:

def addiereZweiZahlen(s1, s2):
  summe = s1 + s2
  print(summe)

addiereZweiZahlen(12, 17)

Rückgabewerte

Eine Funktion kann Parameter (Eingabewerte) akzeptieren und/oder Rückgabewerte liefern. Die Parameter ermöglichen es der Funktion, unterschiedliche Eingabedaten zu verarbeiten und das Ergebnis als Rückgabewert an den aufrufenden Programmteil zurückzugeben.

In diesem Beispiel wird die Funktion „addiereZweiZahlen“ aufgerufen und die Zahlen 3 und 5 an sie übergeben. Die Funktion addiert die beiden Zahlen und gibt das Ergebnis (8) zurück, das in der Variable „ergebnis“ gespeichert und dann ausgegeben wird.

def addiereZweiZahlen(s1, s2):
  summe = s1 + s2
  return summe

ergebnis = addiereZweiZahlen(3, 5)
print(ergebnis)

Das Erstellen von Funktionen in Python kann dir dabei helfen, deinen Code zu organisieren und zu strukturieren, damit er leichter zu lesen und zu verstehen ist. Du kannst auch Zeit sparen, da du den Code nicht immer wieder neu schreiben musst.

Globale Variablen

Sollen Variablen, die außerhalb einer Funktion deklariert wurden, innerhalb einer Funktion verwendet werden, so ist das problemlos möglich, solange die Variable nicht geändert werden soll:

wert = 1 
def gibAus():
  print(wert)

gibAus()

Soll die Belegung von Variablen jedoch geändert werden, so benötigst du dazu das Schlüsselwort „global“. Die Verwendung ist im folgenden Beispiel zu sehen:

wert = 1

def erhoehe():
  global wert
  wert = wert + 1
  print(wert)

erhoehe()

Sollen mehrere Variablen innerhalb einer Funktion geändert werden, lassen sich einfach mehrere Variablen angeben, die in einer Zeile einfach durch Kommas getrennt werden.

wert1 = 5
wert2 = 3

def tausche(): 
  global wert1, wert2 
  temp = wert1
  wert1 = wert2
  wert2 = temp


tausche()
print(wert1)

Das Schlüsselwort „global“ bezieht sich nicht nur auf Variablen, sondern auch auf Listen und weitere Objekte.