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.

Was sind Funktionen?

Eine Funktion ist ein erstellter Programmcode, der aus dem ÔÇ×von-oben-nach-untenÔÇť-Ablauf des Programmes genommen wird und gezielt aufgerufen werden muss.

Wir haben bereits einige Funktionen verwendet, beispielsweise len.

Funktionen helfen uns:

  • Rendundanz zu vermeiden
  • Code in Unterprogramme aufteilen
  • Programm zu strukturieren

Aufbau einer Funktion

Eine Funktion hat einen Input (Parameter) einen Output (Ergebnis).


Syntax einer Funktion

Die Syntax einer Funktion sieht wie folgt aus:

def funktionsname(para1, para2, para3):
    code
    mehr code
    noch mehr code

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

IDE starten und einrichten

­čÄČ F├╝hren Sie diese Aktionen aus:

  • Neuer Ordner Thema6 erstellen
  • Neue Datei in Ordner Funktion.py erstellen

Funktion mit Ergebnis

Wir starten mit einer einfachen Funktion Summe.

­čÄČ Diesen Code anf├╝gen:

def summe(x, y):
  return x+y

print(summe(4,5))
print(summe(7,5))
print(summe(11,9))

Funktion ohne Ergebnis

Die R├╝ckgabe eines Ergebnis ist nicht zwingend.

­čÄČ Diesen Code eingeben:

def print_summe(x, y):
    print(x+y)

print_summe(4,5)
print_summe(7,5)
print_summe(11,9)

Egebnis zur Weiterverarbeitung

Das Ergebnis einer Funktion kann weiter verarbeitet werden.

­čÄČ Diesen Code anf├╝gen:

n = summe(4, 5)
print(summe)

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]

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()

Zur Definition der Parameter gibt noch weitere Aspekte.


Aufgaben 1

L├Âsen Sie die Aufgaben 6.1 bis 6.4.

ÔÜíAufteilung in Gruppen/Breakout-Rooms ÔĆ▒´ŞĆ 20 Minuten


Parameter ├╝berpr├╝fen

Im Vergleich zu anderen Programmiersprachen kann bei Python der Typ einer Variable nicht explizit festgelegt werden.


Parameter in der Funktion pr├╝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))

Rekursive Funktionen

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 2

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.