https://dabeaz-course.github.io/practical-python/ könnte eventuell etwas für dich sein, wenn du Probleme mit den typischen Konstrukten in Python hast - das zeigt in den ersten Kapiteln recht schön, wie man mit Strings, Zahlen, Konditionen, Schleifen, Funktionen usw. arbeiten kann.
Reguläre Ausdrücke sind ein bisschen Fleißarbeit, da hilft nur viel üben, bis man die halbwegs flüssig Lesen und Schreiben kann. Als Einführung (ich weiß ja nicht, wie gut die Vorlesungen und Übungen an deiner TH sind) könnte Al Sweigart Yes, It's Time to Learn Regular Expressions PyCon 2017 eventuell nützlich sein.
Die Aufgaben erfordern eigentlich nicht viel an IT-Grundlagen und Mathematisch ist da auch nichts dabei, das ich in der Oberstufe nicht schon mal gesehen hatte - du musst als erstes den Algorithmus ausarbeiten - für den Mittelwert aus 1.3 kann man direkt die Definition aus der Wikipedia übernehmen:
"Das arithmetische Mittel ist die Summe der gegebenen Werte geteilt durch die Anzahl der Werte." Die einzige Herausforderung ist also die Summe und die Anzahl zu bestimmen.
Dann schreibt sich dann eigentlich fast von alleine, wenn man weiß, wie eine for-Schleife in Python funktioniert:
1
2
3
4
5
6
7
8
9
10
11
12 | #!/usr/bin/env python3
data = [500, 504, 499, 399, 590, 123, 430, 758, 938, 637, 750, 735]
def mean(data):
sum_elements = 0
num_elements = 0
for e in data:
sum_elements = sum_elements + e
num_elements = num_elements + 1
return sum_elements / num_elements
mean(data)
|
Das ist eine recht generische Variante, die man so in jeder Programmiersprache umsetzen könnte, die for(each)-Schleifen unterstützt - das ist aber eigentlich unnötig viel Code für Python.
Mit dem Built-ins sum() und len() (die man in der Übungsaufgabe nicht verwenden soll) sieht das schon schöner aus:
| def mean(data):
return sum(data)/len(data)
|
Und wenn man das nicht selber implementieren will, gibt es da noch das bereits erwähnte mean() aus der Standard Library, die dann auch noch eine brauchbare Fehlerbehandlung mitbringt:
| from statistics import mean
|
Bei Fibronacci-Zahlen und sonstigen Spielereien wie Fizz buzz kann es sich lohnen sich mal vorab eine Lösung zurecht zu legen, damit man sich dann im Eifer des Gefechts nicht unnötig verzettelt...