04 Dateien einlesen und Daten auswerten

Einstieg in das Thema

Was brauchst du als Basiswissen?

Du kannst Listen und Zeichenketten verarbeiten und einfache Funktionen schreiben.

Worum geht es?

Datensätze stehen häufig in Text- oder CSV-Dateien. Wir laden eine kleine Datei in OnlineGDB hoch, lesen sie zeilenweise ein und berechnen daraus aussagekräftige Ergebnisse.

Was ist das Ziel?

Du kannst eine Textdatei sicher lesen, getrennte Werte umwandeln und eine kleine Datenauswertung durchführen.

Erarbeitung

Aufgaben

with open("ab04_wetterdaten.csv", encoding="utf-8") as datei: for zeile in datei: print(zeile.strip())
Aufgabe 1
Wie viele Datenzeilen besitzt die Datei?
Aufgabe 2
Welche Bedeutung hat die erste Zeile?
Aufgabe 3
Was geschieht bei einem falsch geschriebenen Dateinamen?
with open("ab04_wetterdaten.csv", encoding="utf-8") as datei: kopf = datei.readline() for zeile in datei: teile = zeile.strip().split(";") datum = teile[0] temperatur = float(teile[1]) print(datum, temperatur)
Aufgabe 4
Warum ist in der 6. Zeile ein float notwendig?
Aufgabe 5
Was würde beim Suchen einer größten Temperatur passieren, wenn das float nicht da ist?
Aufgabe 6
Was ist der Unterschied zwischen float(...) und int(...)?
Aufgabe 7
Warum steht jetzt vor der Schleife ein readLine?
Aufgabe 8
Was passiert in der 6. Zeile bei float im ersten Schleifendurchlauf, wenn man readLine nicht angibt?
Aufgabe 9
Ergänze die Ausgabe von Niederschlag und Wetterlage.

Aufgabe 3: Temperaturen auswerten

Aufgabe 10
Speichere alle Temperaturen in einer Liste. Gib danach aus:
- kleinste und größte Temperatur, - Mittelwert auf eine Nachkommastelle gerundet, - Anzahl der Tage mit mindestens 20 Grad.

Hinweis: `round(wert, 1)` rundet auf eine Nachkommastelle.

Aufgabe 11
Gib Datum und Niederschlag für alle Tage mit mehr als 0 mm Regen aus.
Aufgabe 12
Berechne anschließend den gesamten Niederschlag.
Aufgabe 13
Welche Aussage lässt sich aus diesem Ergebnis treffen, welche nicht? Beachte, dass die Datei nur wenige ausgewählte Tage enthält.
Aufgabe 14
Schreibe eine Funktion `mittelwert(werte)`, die den Mittelwert einer nicht leeren Zahlenliste zurückgibt.
Aufgabe 15
Verwende sie für die Temperaturen und Niederschlagswerte.
Aufgabe 16
Erweiterung: Wie sollte die Funktion auf eine leere Liste reagieren?
Aufgabe 17
Kopiere die CSV-Datei und ersetze einen Temperaturwert durch `fehlt`. Lade die Datei, wenn du das likal gemacht hat, auch wieder hoch.
Aufgabe 18
Beobachte die Fehlermeldung.
try: temperatur = float(teile[1]) except ValueError: print("Ungültiger Wert in Zeile:", zeile.strip())
Aufgabe 19
Fange die Umwandlung danach ab:
Aufgabe 20
Warum muss nach der Fehlermeldung entschieden werden, ob die Zeile übersprungen wird? `continue` springt zum nächsten Durchlauf.

Zusammenfassung

Was muss man wissen und können?

  • with open() öffnet und schließt eine Datei sicher.
  • CSV-Daten können mit split() in Felder zerlegt werden.
  • Zahlen aus Dateien müssen mit int() oder float() umgewandelt werden.
  • Listen und Funktionen helfen bei der Auswertung vieler Werte.
  • Ergebnisse müssen passend zur Datengrundlage interpretiert werden.

Was folgt als Nächstes?

Im Meisterstück entwickelst du eine eigene kleine Datenauswertung.