Zmieniona lista wywołującego
Panel pokazuje podgląd, jak wyglądałby wykres dnia po dodaniu kolejnego odczytu. Podgląd działa. Ale po każdym podglądzie zapisane odczyty z danego dnia mają o jedną wartość więcej, a raport dzienny liczy odczyty, których nigdy naprawdę nie wykonano.
Przewidź, co wypisze program, sprawdź, jak podgląd dotarł do zapisanej listy, napraw funkcję, a potem napisz kolejną, która nie rusza swoich danych wejściowych.
Ukończ etap 1, aby odblokować ten etap.
Nie uruchamiaj jeszcze kodu. Przeczytaj go i zdecyduj, co wypisze w pierwszej linii. Wpisz swoje przewidywanie w prediction, na górze, w cudzysłowie. Potem uruchom kod i porównaj.
Na tym etapie zalicza każde przewidywanie: chodzi o to, żeby pomyśleć przed uruchomieniem. Po sprawdzeniu zobaczysz swoje przewidywanie obok tego, co wypisał Python.
Do której listy dodaje append(): do nowej czy do samego today?
Ukończ etap 1, aby odblokować ten etap.
Zbadaj. Sprawdź przez with_new is today, czy to ta sama lista, i zapisz True albo False w same_list. Zapisz w today_count, ile odczytów ma today po wywołaniu. Przed sprawdzeniem usuń dodane linie.
Zmień. Spraw, żeby add_reading() zwracała nową listę i nie ruszała tej, którą dostaje. Ma wypisać:
Dziś: [412.5, 415.0] Z nowym odczytem: [412.5, 415.0, 418.2]
Ukończ etap 2, aby odblokować ten etap.
Napisz without_spikes(readings, limit), która zwraca nową listę odczytów równych limitowi lub niższych i zostawia readings bez zmian. Potem wypisz:
Oczyszczone: [412.5, 415.0, 418.2] Zapisane: [412.5, 9999.0, 415.0, 418.2, 9999.0]
Zbuduj w funkcji nową listę, jak w „Przefiltruj dziennik”, i ją zwróć.
Podpowiedzi
Funkcje z parametrami
# Funkcje z parametrami
def greet_astronaut(name):
"""Wita astronautę po imieniu."""
print(f"Witaj na pokładzie, {name}!")
greet_astronaut("Jan")
greet_astronaut("Anna")
# Wiele parametrów
def mission_info(name, target, days):
print(f"Misja: {name}")
print(f"Cel: {target}")
print(f"Czas trwania: {days} dni")
print()
mission_info("Apollo 11", "Księżyc", 8)
mission_info("Mars Explorer", "Mars", 180)
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].