Statistik¶
Wenn man alle Anweisungen in ein einzigen Anweisungsblock schreibt, entstehen Programme, die schwer zu verstehen und zu debuggen sind. In diesem Kapitel lernst du, den Code in Funktionen, also kleinere Einheiten aufzuteilen.
In diesem Kapitel lernst du:¶
Bereich |
Thema |
|---|---|
🚀 |
Statistiken berechnen |
⚙ |
eine Funktion implementieren |
⚙ |
eine selbst definierte Funktion aufrufen |
💡 |
das Modul |
💡 |
die Funktion |
🔀 |
eine rekursive Funktion nutzen |
Aufgabe 1: Aufsummieren¶
Schreibe eine Funktion, die die Summe einer Liste von Zahlen berechnet. Füge in die Lücken ein: zahlen, daten, def, return, calc_sum, +=
____ calc_sum(daten):
total = 0
for n in ____:
total ____ n
____ total
zahlen = [12562, 2178, 342, 129, 384, 208, 164, 82, 41]
s = ____(____)
print(s)
Aufgabe 2: Mittelwert¶
Schreibe eine Funktion, die den arithmetischen Mittelwert der folgenden Zahlen berechnet:
def mean(data):
...
numbers = [12562, 2178, 342, 129, 384, 208, 164, 82, 41]
...
Vergiss den return-Befehl nicht.
Aufgabe 3: Abkürzung¶
Vereinfache die Mittelwertfunktion, indem du die Funktion sum() verwendest.
Du kannst deine eigene oder die eingebaute sum()-Funktion verwenden.
Aufgabe 4: Standardabweichung¶
Das folgende Programm berechnet die Standardabweichung einer Zahlenliste. Du möchtest den Code verallgemeinern, sodass er mit anderen Datensätzen funktioniert. Verpacke den Berechnungsteil – aber nicht die Daten – in eine Funktion.
import math
data = [12562, 2178, 342, 129, 384, 208, 164, 82, 41]
mittelwert = mean(data)
summe = 0.0
for n in data:
summe += (n - mittelwert) ** 2
varianz = summe / len(data)
stabw = math.sqrt(varianz)
print(f"Standardabweichung: {stabw:8.2f}")
Aufgabe 5: Optionale Parameter¶
Erkläre das Programm:
def add(a=2, b=2):
return a + b
print(add(3, 3))
print(add(3))
print(add())
print(add(b=4))
Aufgabe 6: Rekursion¶
Erkläre den folgenden Code:
def factorial(n):
"""Berechnet die Fakultät der angegebenen Zahl."""
if n > 1:
return n * factorial(n - 1)
else:
return 1
x = int(input('Bitte gib eine Zahl ein: '))
y = factorial(x)
print(f"Das Ergebnis ist:\n{x}! = {y}")
Reflexionsfragen¶
Warum ist es sinnvoll, Funktionen zu schreiben?
Was muss in einer Funktionsdefinition stehen?
Wie ruft man eine Funktion auf?
Was macht die
return-Anweisung?