Prozeduren mit Parametern
Mit parameterlosen Prozeduren können wir Codefragmente abstrahieren und benennen, und diese damit dann an mehreren Stellen in unserem Programm ausführen, ohne dass wir den entsprechenden Code kopieren müssen. Weitere Flexibilität erhalten wir dadurch, dass wir Parameter einführen. Mit Parameter können wir das Verhalten vom Code innerhalb unserer Prozedur von aussen steuern.
Dies wird in folgendem Video illustriert:
Zusammenfassend hier nochmals die Regeln, um eine Prozedur mit Parameter zu definieren und aufzurufen.
def NAME(parameter1, ..., parameterN):
CODEBLOCK
Nach dem Schlüsselwort def
können wir einen beliebigen Namen für die Prozedur wählen.
Innerhalb der runden Klammern schreiben wir dann die Namen unserer Parameter, jeweils durch ein Komma getrennt.
Um die Prozedur auszuführen, schreiben wir den Namen der Prozedur gefolgt von runden Klammern. Innerhalb der Klammern geben wir jeweils einen Ausdruck (oder direkt einen Wert) für jeden Parameter an.
NAME(Ausdruck1, ..., AusdruckN)
Die übergebenen Werte werden auch Argumente genannt.
Anmerkung: Benannte Argumente (Keyword arguments)
Bisher haben wir die Argumente einer Prozedur angegeben, indem wir die Werte, durch Komma getrennt, hintereinander in die Klammern geschrieben haben. Dies wird manchmal aber etwas unübersichtlich, wie folgendes Beispiel zeigt:
def add_person(first_name, last_name):
# Hier würde etwas mit den Daten gemacht werden
# Aufruf
add_person("frank", "ernst")
Wenn wir uns nur den Aufruf add_person("frank", "ernst")
anschauen, wissen wir nicht mehr genau,
welches Argument jetzt dem Vornamen und welches dem Nachnamen entspricht. Um hier Klarheit zu schaffen,
dürfen wir den Namen des Parameters explizit angeben und können folgendes schreiben:
add_person(first_name = "frank", last_name = "ernst")
Man spricht in diesem Fall von benannten Argumenten.
Experimente
Experimentieren Sie doch am besten gleich selbst damit.
Experimente
- Rufen Sie die Prozedur ein zweites Mal mit anderen Parameter auf.
- Schreiben Sie eine weitere Prozedur welche die ersten 10 Elemente der Zahlen-Reihe (z.B. für die 3er-Reihe -> "3 6 9 12 15 18 21 24 27 30") einer als Parameter übergebenen Zahl ausgibt.
- Ändern Sie die Prozedur
print_even_numbers
so um, dass sie mit einem dritten Parameter entscheiden können ob die geraden oder ungeraden Zahlen ausgegeben werden. - Experimentieren Sie mit benannten Argumenten. Müssen alle Argumente benannt sein oder dürfen Sie den Namen des Parameters bei einigen weglassen? Müssen diese noch immer in der richtigen Reihenfolge angegeben werden?
Fragen und Kommentare
Haben Sie Fragen oder Kommentare zu diesem Artikel? Nutzen Sie das Forum und helfen Sie sich und Ihren Mitstudierenden dieses Thema besser zu verstehen.