Python 1.6 – Daten in Befehlen (Parameter)

In der vorigen Lektion haben wir uns mit Funktionen beschäftigt. Im Nachfolgenden wollen wir uns anschauen, wie wir das Verhalten von Funktionen mit sog. Parametern beeinflussen können.

Was sind Funktionsparameter?

Wir haben uns bereits angesehen, wie man zusammengehörige Funktionalitäten in Funktionen kapseln kann.

Parameter erlauben uns, das Verhalten einer Funktion beim Aufruf zu steuern.

Dies wird ganz einfach mit einem Beispiel deutlich:

Code-Beispiel:

def gruesse(name):
    print("Hallo" + name)

Die Funktion wird nun folgendermaßen aufgerufen:

gruesse("Peter")

Der Parameter in der Funktion gruesse() heißt name. Je nachdem wie wir diesen Parameter wählen, beeinflussen wir das Verhalten der Funktion und ein anderer Text wird ausgegeben.

Dies ist sehr nützlich, da es uns erlaubt, die gleichen Teile einer Funktion statisch zu programmieren und die sich ändernden Teile dynamisch über Parameter einzufügen.

Weitere Beispiele - Addition mit Parametern

Mit den bisher erworbenen Kenntnissen können wir nun zum Beispiel eine Funktion zur Addition programmieren

def addieren(operand1, operand2):
    return operand1 + operand2

Wir würden die Funktion addieren folgendermaßen aufrufen:

x = addieren(1,2)

Danach beinhaltet die Variable x den Wert 3. Damit haben wir die Möglichkeit geschaffen, mit einer Funktion beliebige Zahlen zu addieren. Für eine simple Operation wie die Addition mag dies noch nicht besonders eindrucksvoll sein. Für komplexere Operationen ist dies aber sehr nützlich.

Code-Beispiel - Berechnung von quadratischen Gleichungen:

Beispielsweise können wir mit den bisher erworbenen Kenntnissen sehr einfach ein Programm zur Berechnung von quadratischen Gleichungen erstellen. Du musst die Formeln dazu nicht unbedingt verstehen. Es geht hier mehr darum die Vielfältigkeit von Parametern zu zeigen.

def solve_quadr_equation(a, b, c):
    d = (b**2) - (4*a*c)
    sol1 = (-b-cmath.sqrt(d))/(2*a)
    sol2 = (-b+cmath.sqrt(d))/(2*a)

    return sol1, sol2

Die Funktion sqrt ist im Modul cmath enthalten und berechnet die Quadratwurzel. Mach dir keine Gedanken, wenn du den Code noch nicht im Detail verstehst. Es geht an dieser Stelle im Wesentlichen darum, die Möglichkeiten aufzuzeigen, die Funktionen bieten.

Code-Aufgabe - Jetzt bist du gefragt:

Deine Aufgabe:

Du als König und Abenteurer möchtest dein Heer für einen neuen Feldzug rüsten. Dazu musst du folgende Aufgaben erledigen:

  1. ein Heer rekrutieren
  2. das Heer bewaffnen
  3. einen General benennen

Was muss programmiert werden?

  • Schreibe eine Funktion, die jeweils einen Text ausgibt, der mit „Ich muss“ beginnt
  • Übergib den Rest der Ausgabe (z.B. ein Heer rekrutieren) als Parameter!
  • Hinweis: Du musst die Funktion dafür 3-mal aufrufen

Schreibe deinen Code in den Editor:

Code-Aufgabe - Lösung:

Wenn du nicht weiterkommst, findest du hier die Komplettlösung zu der Aufgabe. Du kannst den folgenden Code in den Online-Editor kopieren & einfügen, um ihn zu testen.

[lp_spoiler title="Spoiler - Lösung anzeigen"]

def aufgabe_ausgeben(aufgabe):
    print("Ich muss " + aufgabe)

def main():
    aufgabe_ausgeben("ein Heer rekrutieren.")
    aufgabe_ausgeben("das Heer bewaffnen.")
    aufgabe_ausgeben("einen General benennen.")

if __name__ == '__main__':
    main()
Code ausprobieren ×

[/lp_spoiler]

Zusammenfassung:

Im vorliegenden Kapitel haben wir gelernt, wie wir das Verhalten von Funktionen mit Parametern steuern können. Damit haben wir die Möglichkeit geschaffen, große Teile unseres Codes in Funktionen zu kapseln und die sich ändernden Teile mit Parametern zu übergeben.

Wir hoffen, du hattest Spaß und wir sehen uns im nächsten Kapitel wieder.