4.2 Średnie godzinowe w wycinku

Matura pokazowa marzec 2022 - Matura z informatyki: arkusze krok po kroku (Python)

Zadanie 4.2 (3 pkt): średnia temperatura dla każdej godziny doby z całego roku, zaokrąglona do dwóch miejsc (1 pkt za zestawienie, 1 pkt za zaokrąglenie), i wykres liniowy z opisanymi osiami (1 pkt). Godzina to dwa pierwsze znaki napisu `"07:00"`. Wykres liniowy rysuje `plt.plot` (linia przez 24 punkty), `marker="o"` zaznacza same punkty.

rows = []  # (dzień, godzina, temperatura, opad)
with open("brenna_przyklad.txt") as f:
    f.readline()  # wiersz nagłówkowy
    for line in f:
        moment, temp, precip = line.strip().split("\t")
        day, hour = moment.split()  # "01.01.2019 00:00"
        rows.append((day, hour, float(temp.replace(",", ".")), float(precip.replace(",", "."))))

# 4.2 suma i liczba pomiarów dla każdej godziny doby (0 = 00:00, ..., 23 = 23:00)
total, count = {}, {}
for day, hour, temp, precip in rows:
    h = int(hour[:2])
    total[h] = total.get(h, 0) + temp
    count[h] = count.get(h, 0) + 1
averages = [round(total[h] / count[h], 2) for h in range(24)]

print("4.2")
for h in range(24):
    print(h, f"{averages[h]:.2f}")

import matplotlib.pyplot as plt

plt.plot(range(24), averages, marker="o")
plt.xticks(range(24))
plt.xlabel("godzina doby")
plt.ylabel("średnia temperatura [°C]")
plt.title("Średnia temperatura w kolejnych godzinach doby (Brenna, 2019)")
plt.grid(True)
plt.show()

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Matura z informatyki: arkusze krok po kroku·Zaloguj się, aby zapisać postęp na koncie.