0%

Eigene Funktionen schreiben · Übung

Parameter und Argumente

Die Funktion in der vorherigen Lektion hat immer dieselbe Nachricht ausgegeben. Mit einem Parameter kann eine Funktion Informationen erhalten und bei verschiedenen Aufrufen unterschiedliche Werte verwenden.

def greet(name):
    print(f"Hello, {name}!")

Der Name in den Klammern der Definition ist ein Parameter:

def greet(name):
          # ^ parameter

Er ist eine Variable, die beim Aufruf der Funktion einen Wert erhält.

greet("Mina")
      # ^ argument

Der Wert im Aufruf ist ein Argument.

Verwende die Begriffe einheitlich:

  • Ein Parameter ist eine Variable, die in einer Funktionsdefinition benannt wird.

  • Ein Argument ist ein Wert, der bei einem Funktionsaufruf übergeben wird.

Die Begriffe werden manchmal ungenau verwendet, aber diese Unterscheidung macht es viel leichter zu erklären, was Code tut.

Eine Definition, unterschiedliche Argumente

Try it

Jeder Aufruf startet einen neuen Durchlauf des Funktionskörpers. Beim ersten Aufruf enthält name den Wert "Mina". Beim zweiten enthält es "Jon".

Die Funktion braucht keine eigene Version für jede Person. Ihr Parameter beschreibt den Teil, der sich ändern kann.

Mehr als ein Parameter

Trenne Parameter durch Kommas:

def show_score(player, points):
    print(f"{player} scored {points} points.")

Aufrufe übergeben für jeden Parameter ein Argument:

show_score("Maya", 8)
show_score("Omar", 11)

Standardmäßig ordnet Python sie nach ihrer Position zu:

PositionParameterArgument des ersten Aufrufs
ersteplayer"Maya"
zweitepoints8

Vertauschst du die Argumente, bleibt der Python-Code gültig, aber die Nachricht ergibt keinen Sinn mehr:

show_score(8, "Maya")
# 8 scored Maya points.

Die Funktion kann nur mit der Bedeutung arbeiten, die du jeder Position gibst.

Wähle Parameter, die zur Aufgabe gehören

Ein Parameter sollte eine Information sein, die die Funktion tatsächlich braucht. describe_trip benötigt den Namen einer Person und ein Reiseziel, daher sind zwei Parameter sinnvoll.

Sie braucht nicht jede Variable des Programms. Unpassende Informationen zu übergeben macht eine Funktion schwerer verständlich und erschwert den korrekten Aufruf.

Das ist deine erste kleine Entwurfsentscheidung: Finde heraus, was sich von Aufruf zu Aufruf ändert, und mache diese Information zu einem Parameter.

Welche Aussage zum folgenden Code ist richtig?

def show_price(amount):
    print(f"Price: {amount}")

show_price(12)

Aufgabe

Vervollständige describe_trip so, dass die Funktion zwei Parameter verwendet: name und place.

Die Funktion muss einen Satz in genau dieser Form ausgeben:

Maya is heading to Kyoto.

Behalte beide Aufrufe bei. Dieselbe Definition soll Folgendes erzeugen:

Maya is heading to Kyoto.
Omar is heading to Lima.