# Funktionen und Flowchart
⚡Anwesenheit bestätigen (opens new window)
📖 Kapitel 9 Funktionen
# 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 mehrfach verwenden?
# Funktionen
Wir haben Funktionen bereits kennengelernt, beispielsweise len
.
Funktionen helfen uns:
- Rendundanz zu vermeiden
- Code übersichtlicher zu gestalten
# Achtung Funktion
Bei der Anwendung von Funktionen gelten einige Regeln:
- Zuerst definieren dann verwenden
- Funktionen ohne Parameter ist 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
# Thonny starten und einrichten
🎬 Führen Sie diese Aktionen aus:
- Neuer Ordner
Thema5
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]
# Optionale Parameter
Mit para=default
definieren Sie für einen Parameter einen Standardwert. Dieser ist damit gleichzeitig optional.
# Variable Parameteranzahl
Es können mehrere Parameter mit Standardwerten definiert werden.
🎬 Diesen Code 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
# Aufgaben 1
Lösen Sie die ersten zwei Aufgaben.
⚡Aufteilung in Gruppen/Breakout-Rooms ⏱️ 10 Minuten
Ziel: Aufgabe 5.1 und 5.2 gelöst.
# 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'>
f(*l) # 0 (1, 2, 3, 4, 5) <class 'tuple'>
ℹ️ Keep it simple! Verwenden Sie einfache Parameter.
# 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
Die Lambda-Funktion spart Platz.
lambda var1, var2, var3, ...: ausdruck
Sofern alles auf einer Zeile Platz hat.
# Deklaration Lambda-Funktion
Eine Kurzschreibweise für Funktionen.
🎬 Datei Lambda.py
mit diesem Code erstellen:
x = lambda a : a + 10
print(x(5)) # Ausgabe: 15
ℹ️ Die Lambda-Funktion macht das gleiche wie:
def x(a)
return a + 10
print(5
# Filter mit Lambda
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%3==0, data))
print(filtered) # Ausgabe [3, 9, 345, 36, 33]
# Aufgaben 2
Lösen Sie die ersten zwei Aufgaben.
⚡Aufteilung in Gruppen/Breakout-Rooms ⏱️ 10 Minuten
Ziel: Aufgaben 5.3 bis 5.6 sind gelöst.
# Pause
⚡Wir machen eine Pause ⏱️ 10 Minuten
# Flowcharts
Mit Flowcharts kann man einen Vorgang oder Prozess visualisieren.
Zur Darstellung gibt es verschiedene Symbole. Hier die wichtigsten:
# 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 3
Lösen Sie die ersten zwei Aufgaben.
⚡Aufteilung in Breakout-Rooms ⏱️ 10 Minuten
Ziel: Aufgaben 5.7 und 5.8 sind gelöst.
# Review
🎯 Ziele erreicht?
- Eigene Funktionen schreiben
- Parameter für Funktionen definieren
- Code mit Flowchart visualisieren