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.