Eine Function ist ein Name, der für ein oder mehrere Befehle steht
Bei Python sind viele Functions "fest eingebaut", z.B. print() oder bin()
Durch Eingabe des Function-Namens werden die Befehle ausgeführt
Die eingebauten Functions werden natürlich in der Dokumentation alle aufgeführt
https://docs.python.org/3/library/functions.html
Functions (2)
Jede Function muss vor ihrem ersten Aufruf definiert werden
Auf den Namen der Function folgt immer ein Paar runder Klammern
Das Klammerpaar enthält entweder die Argumente der Function oder bleibt einfach leer
Die Standardbibliothek
Auch Standard Library genannt
Ist von Anfang an dabei
Enthält viele Functions (mehrere Hundert) als Ergänzung zu den "eingebauten Functions"
Ist in Module organisiert
Alles unter https://docs.python.org/3/library
Ein erstes Beispiel (1)
Ich: Ich brauche für mein Programm Zufallszahlen
Python-Experte: Nimm einfach randint()
Ich: Aha, wo finde ich rantint
Python-Experte (leicht genervt): In der SL, wo sonst?
Ich: Aha, danke (dann werde ich mal gogglen gehen)
So soll es natürlich nicht sein
Ein erstes Beispiel (2)
Zuerst muss das zuständige Modul importiert werden
Dann wird randint() mit zwei Zahlen aufgerufen
Wichtig: Der Modulname muss trotz import-Befehl vorangestellt werden
Beispiel für eine Function-Definition (1)
Gesucht ist eine Function, die Lottozahlen zurückgibt
Keine Parameter, aber einen Rückgabewert (Liste)
Beispiel für eine Function-Definition (1)
Gesucht ist eine Function, die Lottozahlen zurückgibt
Keine Parameter, aber einen Rückgabewert (Liste)
Beispiel für eine Function-Definition (2)
Beispiel für eine Function-Definition (3)
Beispiel für eine Function-Definition (4)
Schritt 1: Definition der Function mit def
Schritt 2: Parameter sind Namen in den runden Klammern
Schritt 3: Beim Aufruf wird für jeden Parameter ein Wert eingesetzt
Bei Functions ohne Parameter bleibt das Klammerpaar leer
Nur "Lottozahlen" wäre falsch
Functions mit mehreren Parametern (1)
Eine Function kann eine beliebige Anzahl an Parametern besitzen
Der Parametertyp wird nicht angegeben
Beim Aufruf wird für jeden Parameter ein Wert (Argument) eingesetzt
Functions mit mehreren Parametern (2)
Lokale Variablen
Variablen, die innerhalb einer Function-Definition angelegt werden, sind "lokal"
Eine lokale Variable ist nur innerhalb der Function ansprechbar
Globale Variablen
Alle Variablen, die außerhalb einer Function definiert werden, sind "global"
Damit eine globale Variable innerhalb einer Function angesprochen werden kann, muss sie mit dem global-Befehl in der Function-Definition deklariert werden
Functions mit mehreren Parametern (3)
Functions mit variablen Parametern
Die Anzahl der Werte für einen Parameter kann variabel sein
Beim Aufruf können beliebig viele Werte übergeben werden
Dem Parameter muss ein * oder ** vorausgehen
* = alle Werte werden als Tupel (Liste) zugeordnet
** = alle Werte werden als Wörterbuch zugeordnet
Module
Ein Modul ist ein Verzeichnis, das eine oder mehrere py-Dateien enthält
Die py-Datei(en) enthalten Function-Definitionen
Durch das Importieren des Moduls werden die Functions Teil des Programms
Das Erstellen von Modulen ist grundsätzlich einfach
Der import-Befehl (Teil 1)
Der import-Befehl "holt" den Inhalt eines Moduls in das Programm
Er übernimmt zwei Aufgaben: 1. Er sucht nach dem angegebenen Modul 2. Er "bindet" den Inhalt des gefundenen Moduls an einen Namen
Der import-Befehl kann einfach und gleichzeitig "kompliziert" sein
Der import-Befehl (Teil 2)
Bei der Suche nach einem Modul werden alle Verzeichnisse durchsucht, die in der Variablen sys.path enthalten sind
sys.path ist erweiterbar, so dass ein Modulverzeichnis bzw. Modulpfad auch explizit angegeben werden kann
Die "Suchstrategie" ist etwas "kompliziert" und muss einen Python-Anfänger nicht interessieren
Der import-Befehl (Teil 3)
Im einfachsten Fall wird nur der Name eines Moduls angegeben
Über den from-Befehl werden gezielt Functions in einem Modul ausgewählt
importiert nur die Function getgwd() aus dem Modul os
Ein from
Zusammenfassung
Functions fassen Befehlsfolgen zusammen
Über den Namen der Function werden die Befehle ausgeführt
Functions können Parameter und einen Rückgabewert besitzen
Viele Functions sind eingebaut, die Standard-Bibliothek enthält weitere Functions
Für die Functions der Standard-Bibliothek ist ein import-Befehl erforderlich
Ein Modul ist im einfachsten Fall eine py-Datei mit Function-Definitionen