Space Python Ładowanie Pythona…

Przetestuj parser

Napisz kodŚredni 2 etapy

parse_line() czyta teraz każdą linię telemetrii, którą odbiera stacja naziemna, więc pomyłka w niej po cichu zepsułaby każdy wykres i raport. Zasługuje na testy, które uruchamiają się za każdym razem, gdy ktoś ją zmienia.

Sprawdź, czym staje się dobra linia, a potem, co parser robi z liniami, które nie są odczytami.

Napisz sprawdzenia assert dla dobrych linii: porównaj cały rekord, który zwraca parse_line(), ze słownikiem, którego się spodziewasz, żeby sprawdzić każde pole i jego typ. Gdy wszystkie są spełnione, wypisz:

Wszystkie sprawdzenia przeszły

Na przykład linia z kanału, "2026-03-14T09:30:05Z,ENG-2,412.5,C", powinna dać {"time": "09:30:05", "sensor": "ENG-2", "value": 412.5, "unit": "C"}. Zostaw funkcję bez zmian.

Sprawdzenia, które przechodzą
Sprawdzenia, które łapią błędy

Ukończ etap 1, aby odblokować ten etap.

Dodaj sprawdzenia dla linii, które parser musi zamienić w None: pustej linii, linii ze spacjami, komentarza i linii z brakującym polem, na przykład "2026-03-14T09:30:10Z,TANK-1". Użyj is None. Potem sprawdź, że dobra linia ze spacjami wokół nadal daje właściwy rekord. Zostaw linię o powodzeniu na końcu.

Sprawdzenia, które przechodzą
Sprawdzenia, które łapią błędy
Nie jesteś zalogowany, więc postęp zostaje tylko w tej przeglądarce. Zaloguj się, aby go zapisać i korzystać z podpowiedzi oraz rozwiązań.

Podpowiedzi

Zwracanie słownika lub listy

Funkcje mogą zwracać słowniki, listy i inne złożone struktury. Przydatne do grupowania powiązanych danych.
zwracanie-slownika-listy.py
# Zwracanie złożonych struktur danych

def get_planet_data(name):
    """Zwraca słownik z danymi planety."""
    database = {
        "Mars": {"diameter": 6779, "moons": 2, "type": "skalista"},
        "Jowisz": {"diameter": 139820, "moons": 95, "type": "gazowa"},
        "Saturn": {"diameter": 116460, "moons": 83, "type": "gazowa"}
    }
    return database.get(name, {"error": "Nie znaleziono"})

def generate_schedule(days):
    """Generuje listę dni misji."""
    return [f"Dzień {i+1}" for i in range(days)]

# Użycie
mars = get_planet_data("Mars")
print(f"Mars - księżyce: {mars["moons"]}")

schedule = generate_schedule(5)
print(f"Harmonogram: {schedule}")
Otwórz cały przykład
script.py
PythonWiersz 1, kol. 1Spacje: 4
Ładowanie środowiska Pythona…

Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].