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

Einstieg in Python - Lektion 5

By Peter Monadjemi

Einstieg in Python - Lektion 5

In dieser Lektion geht es um die Rolle von Functions, wie Functions definiert werden, und um die bei Python allgegenwärtigen Module

  • 30