Zum Inhalt springen
BetaEN
Lektion 10 von 35Python

Python · Lektion 10 · 30 Minuten

Eigene Funktionen

Das lernst du

  • Eigene Funktionen mit def schreiben
  • Werte mit Parametern übergeben und mit return zurückgeben
  • Funktionen in anderen Funktionen wiederverwenden

Warum eigene Funktionen?

Du benutzt schon die ganze Zeit Funktionen: print(), len(), input(). Jetzt baust du eigene! Eine Funktion ist ein Mini-Programm mit Namen. Du schreibst es einmal und kannst es dann so oft aufrufen, wie du willst.

def begruessen():
    print("Hallo!")
    print("Schön, dass du da bist.")

begruessen()
begruessen()

def heißt „definiere“. Der Code in der Funktion ist eingerückt und läuft erst, wenn du die Funktion aufrufst.

Parameter: Werte hineingeben

In die Klammern schreibst du Parameter, also Platzhalter für Werte, die du beim Aufruf mitgibst:

def begruessen(name, sprache="de"):
    if sprache == "en":
        print(f"Hello {name}!")
    else:
        print(f"Hallo {name}!")

begruessen("Mia")
begruessen("Tom", "en")

sprache="de" ist ein Standardwert: Lässt du ihn beim Aufruf weg, wird "de" benutzt.

return: Ergebnisse zurückgeben

print() zeigt nur etwas an. Mit return gibt die Funktion ein Ergebnis zurück, mit dem du weiterrechnen kannst:

def flaeche(breite, hoehe):
    ergebnis = breite * hoehe
    return ergebnis

zimmer = flaeche(4, 3)
flur = flaeche(5, 1)
print(f"Zusammen: {zimmer + flur} m²")

Drück auf Schritte: Wenn Python in die Funktion springt, siehst du einen eigenen Speicherbereich „In der Funktion flaeche()“. Variablen wie ergebnis gibt es nur dort – nach dem return sind sie wieder weg.

Merke: Nach return ist die Funktion sofort zu Ende. Code, der danach in der Funktion steht, wird nicht mehr ausgeführt.

Funktionen kombinieren

Richtig stark werden Funktionen, wenn sie sich gegenseitig benutzen. So bleibt jede Funktion kurz und verständlich:

def in_euro(cent):
    return cent / 100

def preis_text(cent):
    return f"{in_euro(cent):.2f} €"

print(preis_text(250))
print(preis_text(1999))

:.2f im f-String bedeutet: Zeige genau 2 Nachkommastellen.

Kurz-Check

Bevor es an die Aufgabe geht: Was gibt dieses Programm aus? Tipp deine Vermutung ein – Python rechnet danach nach.

def doppelt(zahl):
    return zahl * 2


print(doppelt(3) + doppelt(1))

Deine Aufgabe

Jetzt bist du dran

Schreib zwei Funktionen. ist_gerade(zahl) gibt True zurück, wenn die Zahl gerade ist, sonst False (Tipp: zahl % 2 ist der Rest beim Teilen durch 2). zaehle_gerade(liste) bekommt eine Liste mit Zahlen und gibt zurück, wie viele davon gerade sind. Benutze dafür ist_gerade.

def ist_gerade(zahl):
    # Gib True oder False zurück
    pass


def zaehle_gerade(liste):
    # Zähle mit Hilfe von ist_gerade
    pass


print(ist_gerade(4))
print(zaehle_gerade([1, 2, 3, 4, 6]))

Ohne Hinweise gelöst gibt es einen ⭐ auf deiner Fortschrittsseite.

Lösung anzeigen

Versuch es erst selbst – aus Fehlern lernt man am meisten. Hier ist eine mögliche Lösung:

def ist_gerade(zahl):
    return zahl % 2 == 0


def zaehle_gerade(liste):
    anzahl = 0
    for zahl in liste:
        if ist_gerade(zahl):
            anzahl = anzahl + 1
    return anzahl


print(ist_gerade(4))
print(zaehle_gerade([1, 2, 3, 4, 6]))

Für Schnelle

Profi-Aufgabe

Schreib ist_palindrom(text). Ein Palindrom liest sich vorwärts und rückwärts gleich, wie „Anna“ oder „Lagerregal“. Groß- und Kleinschreibung und Leerzeichen zählen nicht: Auch „Ein Esel lese nie“ ist ein Palindrom. Die Funktion gibt True oder False zurück.

def ist_palindrom(text):
    return False


print(ist_palindrom("Anna"))
print(ist_palindrom("Python"))
Profi-Lösung anzeigen
def ist_palindrom(text):
    sauber = text.lower().replace(" ", "")
    return sauber == sauber[::-1]


print(ist_palindrom("Anna"))
print(ist_palindrom("Python"))
Mehr üben im TrainingsraumEndlos neue Aufgaben zu diesem Thema – mit XP und Serien.