Mit Funktionen kannst du Code ordentlich und übersichtlich halten. Was du öfter brauchst, schreibst du einmal als Funktion und nutzt es danach immer wieder.
Hier sehen wir ein Beispiel ohne Funktionen und mit Funktionen:
spiel="Tetris"
besterSpieler_Name="Carl"
besterSpiele_Punkte=100
zweiterSpieler_Name="Carlos"
zweiterSpieler_Punkte=90
print("Spiel - 1st")
print(spiel)
print("Name")
print(besterSpieler_Name)
print("Punkte")
print(zweiterSpieler_Punkte)
print("-" * 20)
print("Spiel - 2nd")
print("Name")
print(zweiterSpieler_Name)
print("Punkte")
print(zweiterSpieler_Punkte)
print("-" * 20)def print_highscore(spiel, name, punkte):
print("Spiel")
print(spiel)
print("Name")
print(name)
print("Punkte")
print(punkte)
print("-" * 20)
print_highscore("Tetris","Carl",100)
print_highscore("Tetris,"Carlos",90)Man sieht deutlich: Mit Funktionen wird der Code übersichtlicher und leichter zu lesen. Wenn du die Highscore-Ansicht später ändern möchtest, passt du das nur noch an einer einzigen Stelle an – statt denselben Block mehrfach zu bearbeiten.
Ganz nach dem Prinzip „Teile und herrsche“ zerlegen Funktionen ein Programm in kleine, verständliche Bausteine. So kannst du auch größere Projekte Schritt für Schritt entwickeln: Du konzentrierst dich immer nur auf eine kleine Aufgabe, statt den gesamten Code auf einmal im Kopf haben zu müssen.
Aufbau einer Funktion
def funktionename(parameter):
Codezeile1
Codezeile2
Die einzelnen Teile:
- def – Schlüsselwort leitet eine Funktionsdefinition ein
- funktionsname – beliebig aber ohne Leerzeichen
- (parameter) oder () – Parameter also Eingaben können, müssen aber nicht angegeben werden
- : – Nach dem Doppelpunkt beginnt der eigentliche Code in der neuen Zeile. Alles mit gleicher Einrückung gleiche Ebene.
Parameter und Rückgabewerte
Beispiel Mathematische Funktionen:
def quadrat(x):
print(x * x)
def addiere(a, b):
print(a + b)
# Funktion aufrufen:
quadrat(5) # 25
quadrat(12) # 144
addiere(3, 7) # 10Eine Funktion kann auch ein Ergebnis zurückgeben sodass der Aufrufer mit dem Wert weiterarbeiten kann:
def addiere(a, b):
return a + b
ergebnis = addiere(3, 7)
print("Ergebnis:", ergebnis)
def doppelt(x):
return x * 2
print(doppelt(addiere(3, 7))) # doppelt(10) => 20Standardwerte / optionale Parameter
Parameter können einen sogenannten Standardwert bekommen, sodass man nicht immer zu jedem Parameter einen Wert mitgeben muss:
def begruessung(name, sprache="de"):
if sprache == "de":
return f"Hallo {name}!"
elif sprache == "en":
return f"Hello {name}!"
else:
return f"Hi {name}!"
print(begruessung("Carl")) # Hallo Carl!
print(begruessung("Carl", "en")) # Hello Carl!