Slides Thema 6
Funktionen und Flowchart
⚡Anwesenheit bestätigen
📖 Kapitel 9 Funktionen
Lernziele
Ich kann ...
- neue Python-Funktionen schreiben und wiederverwenden.
- Parameter für Funktionen gemäss Anforderungen definieren.
- Den unterschied von lokalen und globalen Variablen erklären.
- Code mit einem Flowchart visualisieren.
- anhand eines Flowchart Code ableiten.
Code gestalten
Mit if
kann man nur bestimmte Teile im Code ausführen.
Mit while
und for
können wir Anweisungen im Code wiederholen.
Wie können wir Code-Teile wiederverenden?
Funktionen
Wir haben Funktionen bereits kennengelernt, beispielsweise len
.
Funktionen helfen uns:
- Rendundanz zu vermeiden
- Code übersichtlicher zu gestalten
Aufbau einer Funktion
Achtung bei Funktionen!
Bei der Anwendung von Funktionen gelten einige Regeln:
- Zuerst definieren dann verwenden
- Funktionen ohne Parameter sind erlaubt
- Alle Datentypen sind als Rückgabewerte erlaubt
- Funktionen können verschachtelt werden
- Mehrere Funktionen dürfen nicht den gleichen Namen haben
Syntax einer Funktion
Die Syntax einer Funktion sieht wie folgt aus:
def funktionsname(para1, para2, para3):
code
mehr code
noch mehr code
IDE starten und einrichten
🎬 Führen Sie diese Aktionen aus:
- Neuer Ordner
Thema6
erstellen - Neue Datei in Ordner
Funktion.py
erstellen
Funktion ohne Ergebnis
Wir erstellen eine Funktion.
🎬 Diesen Code eingeben:
# Funktion ohne Ergebnis
def f1(x, y):
print('Parameter 1:', x)
print('Parameter 2:', y)
Funktion mit Ergebnis
Und fügen eine zweite Funktion hinzu
🎬 Diesen Code anfügen:
# Funktion mit Ergebnis
def f2(x, y):
return x+y
Funktion ausführen
Diese Funktionen führen wir nun aus.
🎬 Diesen Code anfügen:
# Hier beginnt die Programmausführung
f1(2, 3)
# Ausgabe: Parameter 1: 2
# Parameter 2: 3
n = f2(4, 5)
print(n) # Ausgabe: 9
Gültigkeitsbereiche
Lokale und globale Variablen
Variablen haben unterschiediche Gültigkeitsbereiche: Lokal und Global.
Variablen können innerhalb und ausserhalb einer Funktion deklariert werden.
Variable Ausserhalb
🎬 Datei Ausserhalb.py
erstellen und ausführen:
def f1():
print(x)
x=3
f1() # Ausgabe 3
Lokale Variablen
🎬 Datei Lokal.py
erstellen und ausführen:
def f1():
z=5
print(z)
z=3
f1() # Ausgabe 5
print(z) # Ausgabe 3
Globale Variable
Variablen mit der Kennzeichung global
sind ausserhalb der Funktion verfügbar.
def f1():
global z
z=z+3
print(z) # Ausgabe 6
z=3
f1()
print(z) # Ausgabe 6
ℹ️ Das ist nice-to-know. In der Praxis gilt es globale Variablen zu vermeiden
Parameter und Argumente
Parameter
- Mit Prameter können Daten an eine Funktion übergeben werden
- Bei der Parameterdefinition besteht viel Gestaltungsraum
Funktion mit Parameter
🎬 Datei Parameter.py
erstellen und ausführen:
def f1(x):
print(x)
f1([1, 2]) # Ausgabe [1, 2]
Aufgaben 1
Lösen Sie die Aufgaben 6.1 und 6.2.
⚡Aufteilung in Gruppen/Breakout-Rooms ⏱️ 10 Minuten
Aufruf ohne Parameter
Ein Aufruf ohne Parameter ist nicht möglich.
def f1(x):
print(x)
f1()
Standardwert Parameter
Mit para=default
definieren Sie für einen Parameter einen Standardwert. Dieser ist damit gleichzeitig optional.
def f1(x=1):
print(x)
f1()
Variable Parameteranzahl
Es können mehrere Parameter mit Standardwerten definiert werden.
🎬 Diesen Code in der Datei Parameter.py
anfügen:
def f(a,b,c=-1,d=0):
print(a,b,c,d)
f(6,7,8,9) # Ausgabe 6 7 8 9
f(6,7,8) # Ausgabe 6 7 8 0
f() # Fehler a und b werden vermisst
Parameter mit mehreren Werten
Wenn man einen Parameter mit *para
oder **para
definiert, kann man beliebig viele Werte übertragen.
*para
ist ein Tupel**para
ist ein Dictionary
Das funktioniert auch beim Funktionsaufruf.
Beispiel mit Liste
liste = ['a','b','c']
print(liste) # Ausgabe ['a', 'b', 'c']
print(*liste) # a b c
ℹ️ Der *
nimmt die Struktur einer oder mehreren Variablen auseinander oder vereinigt diesen.
Beispiel mehrere Werte
🎬 Datei Mehrere.py
mit diesem Code erstellen:
def f(a, *b):
print(a, b, type(b))
l = range(0,6)
f(1, l) # Ausgabe 1 (range(0, 6),) <class 'tuple'>
ℹ️ Keep it simple! Verwenden Sie einfache Parameter.
Aufgaben 2
Lösen Sie die Aufgaben 6.3 und 6.4.
⚡Aufteilung in Gruppen/Breakout-Rooms ⏱️ 10 Minuten
Parameter überprüfen
Im Vergleich zu anderen Programmiersprachen kann bei Python der Typ einer Variable nicht explizit festgelegt werden.
Parameter dennoch überprüfen
🎬 Datei Ungültig.py
mit diesem Code erstellen:
def f(n):
if isinstance(n, int):
return 2*n
else:
print('Ungültig')
print(f(1))
Rekursion
Funktionen können sich selber aufrufen.
🎬 Datei Rekursion.py
mit diesem Code erstellen:
def f(n):
if n < 20:
print(n)
n += 1
f(n)
f(0)
Lambda-Funktionen
Lambda-Funktionen sind ganz spezielle Funktionen:
- Sie haben keinen Funktionsnamen.
- Parameter und Ausdruck müssen auf einer Zeile Platz haben.
Dazu die Syntax:
lambda var1, var2, var3, ...: ausdruck
Deklaration Lambda-Funktion
Eine Kurzschreibweise für Funktionen.
🎬 Datei Lambda.py
mit diesem Code erstellen:
x = lambda a : a + 10 # Lambda Funktion wird einer Variable zugewiesen
y = x(5) # Lambda Funktion wird aufgerufen
print(y) # Ausgabe: 15
ℹ️ Die Lambda-Funktion macht das gleiche wie:
def x(a):
return a + 10
y = x(5)
print(y)
Filter mit Lambda
Lambda Funktionen sind ausgezeichnet um Daten zu filtern.
Wir erinnern uns an die filter-Funktion filter(function,list)
?
🎬 Datei Lambda.py
mit diesem Code erweitern:
data = [1, 2, 3, 9, 345, 36, 33]
filtered = list(filter(lambda x: x > 9, data))
print(filtered) # Ausgabe [345, 36, 33]
Aufgaben 3
Lösen Sie die Aufgaben 6.5 und 6.6.
⚡Aufteilung in Gruppen/Breakout-Rooms ⏱️ 10 Minuten
Flowcharts
Mit Flowcharts kann man einen Vorgang oder Prozess visualisieren.
Zur Darstellung gibt es verschiedene Symbole. Hier die wichtigsten:
diagrams.net
🎬 Öffnen Sie die Website https://app.diagrams.net und erstellen Sie ein ein Diagramm mit den Element aus dem Bereich General.
Symbol Pfeil
Zeigt den logischen Fluss mit der Verbindung der Symbole.
Symbol Start/Stop
Start und Ende des Prozesses.
Symbol Eingabe/Ausgabe
Ein- und Ausgabe von Daten.
Symbol Prozess
Arithmetische Operationen und Datenverarbeitung.
Symbol Enscheidung
Enscheidungsfindung für ein oder mehrere Alternativen.
Symbol Vorddefinierte Funktion/Prozess
Repräsentiert eine andere Funktion/Prozess.
Flowchart Anwendung
- Mit Flowcharts kann man einen Algorithmus dokumentieren
- Mit Flowcharts kann man Pseudo-Code visualisieren
ℹ️ Pseudocode ist schriftliche Beschreibung eines Algorithmus
Aufgaben 4
Lösen Sie die Aufgaben 6.10 und 6.11.
⚡Aufteilung in Gruppen/Breakout-Rooms ⏱️ 10 Minuten
Review
🎯 Wurden die Lernziele erreicht?
⚡ Feedback zu den Zielen einholen.