Slides Thema 6

Funktionen und Flowchart

◀️ Thema 6

⚡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.netopen in new window 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-pfeil


Symbol Start/Stop

Start und Ende des Prozesses.

symbol-start


Symbol Eingabe/Ausgabe

Ein- und Ausgabe von Daten.

symbol-eingabe


Symbol Prozess

Arithmetische Operationen und Datenverarbeitung.

symbol-prozess


Symbol Enscheidung

Enscheidungsfindung für ein oder mehrere Alternativen.

symbol-entscheidung


Symbol Vorddefinierte Funktion/Prozess

Repräsentiert eine andere Funktion/Prozess.

symbol-vordefiniert


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.