Lektion 5: Functions und Module
- Functions definieren und aufrufen
- Die Rolle des Rückgabewertes
- Functions mit Parametern
- Module
- Functions aus Modulen laden
Functions (1)
- 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
Made with Slides.com