Wir nutzen bereits seit Beginn Funktionen und Methoden. Sie dienen dazu, wiederverwendbare, logisch abgegrenzte Abläufe zu kapseln, um Code klarer, strukturierter und leichter wartbar zu machen.
Jede Funktion hat einen Namen und löst ein Problem
| Name | Problem |
|---|---|
| etwas ausgeben | |
| input | Frage stellen und Antwort einlesen |
| setup (p5js) | Grafik vorbereiten |
| draw (p5js) | nächsten Frame der Grafik erstellen |
Schreibt man hinter den Namen Klammern, so wird die Methode/Funktion aufgerufen. Die Ausführung springt dann in die Definition der Funktion/Methode und führt sie entsprechend aus.
Gibt es ein Ergebnis (einen Rückgabewert), so spricht man von einer Funktion, sonst von einer Methode.
Viele Funktionen/Methoden benötigen Daten, um ihre Aufgabe auszuführen. Diese können beim Aufruf übergeben werden, indem man sie in die Klammern schreibt. Jeder dieser sogenannten Parameter hat einen Datentyp (int, str, bool, float, list)
ergebnis = funktionsname(parameter1, parameter2, ...)
Die Funktion input benötigt einen Parameter vom Typ String. Dies ist der Text, der dem User angezeigt wird. Rückgabewert ist der Text (String), den der User eingegeben hat.
rueckgabewert = input("Wie heißt du? ")
Überlegt für folgende und eingene Alltagsprobleme einen passenden Funktionsnamen, Parameter mit Typ und Rückgabewert mit Typ.
Vervollständigen Sie folgende Tabelle.
| Name | Parameter (können mehrere sein) | Rückgabe | Methode / Funktion |
|---|---|---|---|
| input | str: Text für den User | str: Text, den der User eingegeben hat | Funktion |
| Beliebig viele vom beliebigen Typ | None | Methode | |
| min | Liste von Zahlen | Zahl | Funktion |
| max | Liste von Zahlen | Zahl | Funktion |
| sum | Liste von Zahlen | Zahl | Funktion |
| circle | x:int, y:int, durchmesser:int | None | Methode |
| fill | r:int, g:int, b:int | None | Methode |
Aufgabe: https://inf-schule.de/imperative-programmierung/python/konzepte/funktion/uebungen
Lösung Aufgabe 1 (a)
def rechteck_umfang(seite):
return 4 * seite
def quarder_volumen(länge, breite, höhe):
return länge * breite * höhe
def quarder_oberfläche(länge, breite, höhe):
# siehe Tafelwerk
return 2*(länge*breite + länge*höhe + breite*höhe)
# Test
print("Umfang Rechteck:", rechteck_umfang(10))
print("Volumen Quader:", quarder_volumen(10,20,30))
print("Oberfläche Quader:", quarder_oberfläche(10,20,30))
Lösung Aufgabe 2 a,b und c
def bmi(gewicht, groesse):
return gewicht / (groesse * groesse)
def puls(alter):
return 165 - 0.75 * alter
def reaktionsweg(geschwindigkeit):
return geschwindigkeit / 10 * 3
def bremsweg(geschwindigkeit):
return geschwindigkeit / 10 * geschwindigkeit / 10
def anhalteweg(speed):
return reaktionsweg(speed) + bremsweg(speed)
print(bmi(150,200))
print(puls(15))
Lösung Aufgabe 3a
Die Funktion Summe berechnet die Summe der Zahle 1 bis n -> 1 + 2 + .... + n
Lösung Aufgabe 7
def muster(zeilen, spalen):
for i in range(zeilen):
for i in range(spalen):
print("#", end="")
# alle Spalten sind fertig
print()
muster(100,100)
Aufgabe: Berechnung Noten gleichwertig
def durchschnitt(noten):
summe = 0
for n in noten:
summe = summe + n
# berechne durchschnitt
d = summe / len(noten)
if d < 5:
print("unterpunktet")
return d
print(durchschnitt([12,7,2,2]))
Aufgabe: Berechnung Noten mit Klausuren
def durchschnitt(zahlen):
summe = 0
for n in zahlen:
summe = summe + n
return summe / len(zahlen)
def durchschnitt_noten(klausuren, sonstige):
durchschnitt_klausur = durchschnitt(klausuren)
durchschnitt_sonstige = durchschnitt(sonstige)
druchschnitt = (durchschnitt_klausur + durchschnitt_sonstige) / 2
if druchschnitt < 5:
print("unterpunktet")
return druchschnitt
print(durchschnitt_noten([6],[14,13]))