4.1 Dobowa amplituda w wycinku

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

Zadanie 4.1 (2 pkt): dzień z największą dobową amplitudą temperatury (różnica najwyższej i najniższej temperatury tego dnia) i wartość tej amplitudy. Słowniki `low` i `high` trzymają minimum i maksimum każdego dnia. Różnica liczb z ułamkiem binarnym potrafi wyjść jako 11.799999999999999, stąd `round(..., 1)`. Dla wycinka: 22.02.2019, 11,8.

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.1 najniższa i najwyższa temperatura każdego dnia, potem największa różnica
low, high = {}, {}
for day, hour, temp, precip in rows:
    low[day] = min(low.get(day, temp), temp)
    high[day] = max(high.get(day, temp), temp)
best_day, amplitude = "", -1
for day in high:
    if high[day] - low[day] > amplitude:
        best_day, amplitude = day, high[day] - low[day]
amplitude = round(amplitude, 1)

print("4.1", best_day, amplitude)

Ł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.