×
produktlogotitle

Seite: bbe_index
Diese Seite wurde aktualisiert am 24.09.2021

LOGIN
Benutzer:
Passwort:
 
   if1.net-schulbuch.de

 

Das Konzept der Funktionen trifft man in Python wie in fast allen Programmiersprachen an. Funktionen sind dabei Bauteile, die einen Teil der Problemlösung erledigen; aus diesen Bauteilen kann man dann das gesamte Programm zusammen setzen.

Bei allen bisher gezeigten Beispielen wurden bereits Funktionen benutzt:

  • Um eine Zufallszahl (z.B. für einen Würfelwurf) zu erzeugen, haben wir die Funktion randint () kennen gelernt.
  • Die Funktion print () benutzten wir, um Informationen auf dem Display auszugeben.
  • Die Schildkröte konnte mit der Funktion forward () weiter bewegt werden.

Dies waren Funktionen, die uns im Python-System oder in einer separaten Bibliothek bereitgestellt wurden. Wie die Funktionen (intern) arbeiteten, blieb uns immer verborgen. Wir konnten in einer Dokumentation lediglich lesen, was die Funktion bewirken wird, wenn sie in einem Programm benutzt wird.

So wie in einem Puzzlespiel kann man dann die Funktionen zu dem kompletten Programm zusammen setzen. 

Betrachten wir nochmal die Simulation eines Würfels. Also als Pythonprogramm:

wuerfel = randint (1,6)
print (wuerfel)

Hier wurde also in der ersten Zeile das Bauteil randint () in der aktuellen Form randint (1,6) benutzt, um die Variable wuerfel mit dem Rückgabewert dieser Funktion zu füllen; anschießend wurde die Funktion print () in der Form print (wuerfel) aktiviert.

 

 

Wieso gibt es denn eigentlich Funktionen?

Funktionen sind natürlich ebenfalls Python-Programme. Die Funktion random () besteht aus einer Reihe von Python-Befehlen; und immer, wenn diese Funktion benutzt wird, wird dieser Python-Code ausgeführt.

Also könnte man doch in einem anderen Programm genau diesen Python-Code einfügen!?

Das hätte jedoch große Nachteile:

  • Man müsste den Code besitzen.
  • Wird der Code an mehreren Stellen im Programm gebraucht, dann steht dieser Code mehrfach im Programmtext.
    • Das bläht den Programmtext unnötig auf und macht ihn unlesbarer.
    • Möchte man die Funktionalität dieses Programmstücks ändern, muss man es an alle Stellen machen, an denen dieses Programmstück steht: sicher sehr mühsam und eine Quelle für Fehler.

 

Was ist das Besondere an einer Funktion?

Mehrere wichtige Aspekte erkennen wir z.B. an der Funktion randint ():

  • Wir wissen nicht, wie die Funktion die zugesagte Leistung erbringt. Die Funktion ist also vergleichbar mit einer Black Box, deren Innenleben uns verborgen bleibt. Und wenn wir die Funktion benutzen (aufrufen), können wir uns auf die dokumentierte Funktionalität verlassen. Die Funktion randint () wird also garantiert eine Zufallszahl aus dem angegebenen Bereich liefern.

  • Wir können die Funktion nicht nur einmal benutzen; die Leistung kann an vielen Stellen in unserem Programm abgerufen werden, ohne den eigentlichen Code (den wir ja nicht kennen) immer wieder schreiben zu müssen. Und funktioniert die Funktion an einer Stelle fehlerfrei, so ist sie an allen Stellen fehlerfrei.
    Vielleicht haben wir selber eine Idee, wie man eine Zufallszahl erzeugt. Will man also eine solche Zufallszahl ohne Hilfe einer Funktion an mehreren Stellen in einem Programm erzeugen, müsste man den Programmcode an mehreren Stellen (z.B. durch CopyPaste) einfügen. 

    • Das ist sicher mühsam.
    • Und möchte man den Code - wieso auch immer - ändern, muss man das an allen Stellen in gleicher Art machen. Das ist sicher fehleranfällig.
    • Hat sich ein Fehler in unserem Code eingeschlichen, ist der Fehler an vielen Stellen.
    • In einem anderen Programm, in dem ebenfalls Zufallszahlen benötigt werden, müssen wir den Codeblock ebenfalls einfügen.
    • Und jedesmal, wenn wir eine Zufallszahl benötigen, müssen wir uns Gedanken über den Bereich machen, aus dem die Zahl stammen soll. Also kann man den Code nicht leicht per CopyPaste an anderer Stelle einfügen.


  • Da der Code im Inneren der Funktion vor dem Benutzer verborgen ist, kann der Hersteller der Funktion diesen Code auch ändern, ohne den Benutzer zu informieren. Das ist z.B. dann interessant, wenn der Hersteller die zugesagte Leistung mit einem schnelleren Verfahren erbringen kann.

  • Die Leistung der Funktion kann durch die Parameter gesteuert werden. Die Funktion randint () liefert also - abhängig von der Wahl der Parameter - andere Ergebnisse, ohne dass der Code im Inneren (den wir ja nicht kennen und auf den wir ja auch keinen Einfluss haben) angepasst werden muss.

  • Eine Funktion hat einen Namen sowie eine Parameterliste. Mehr zu den Parametern siehe an späterer Stelle.
    randint ist der Name einer Funktion, die zwei Parameter besitzt.

  • Die Funktion randint () liefert einen Wert zurück, der weiterverwendet werden kann.

  • Eine Funktion wird aktiviert, indem man ihren Namen zusammen mit den aktuellen Parametern in das Programm schreibt.

 

Zusammengefasst:

Funktion

Eine Funktion ist ein Codeblock, der eine fest umrissene Aufgabe erfüllt.

Eine Funktion hat einen Namen und eine Parameterliste (die ggf. leer sein kann).

Eine Funktion kann ggf. einen oder mehrere Werte zurückliefern.

 

In dem Python-System gibt es eine Menge von vordefinierten Funktionen wie z.B. print (). Diese Funktion kann man in einerm Python-Programm ohne weitere Vorarbeiten benutzen.

Daneben gibt es Bibliotheken (wie random), in denen ebenfalls viele Funktionen zusammengefasst sind. Diese Bibliotheken müssen in das Programm importiert werden, um die dort zur Verfügung stehenden Funktionen nutzen zu können. Wie man das macht, hast du ja bereits am Beispiel der Zufallsfunktion auf der Seite über den Zufall erfahren.

Auf den folgenden Seiten wirst du erfahren,

  • dass es verschiedene Typen von Funktionen gibt und
  • wie man eigene Funktionen erstellen kann.

  

Impressum
© 2023  Net-Schulbuch.de
10.00  0.1923  8.1.28