Pomiń puste linie i komentarze
Parser z „Przetwórz cały kanał” działa na czystych danych. Prawdziwy eksport ze stacji naziemnej czysty nie jest: ma komentarz na początku, puste linie między blokami, notatki operatorów, a od czasu do czasu odczyt, który dotarł ucięty.
Naucz parser pomijać to, czego nie może użyć, i nie zatrzymywać się, gdy linia jest uszkodzona.
Ukończ etap 1, aby odblokować ten etap.
Parser z „Przetwórz cały kanał” zatrzymuje się z błędem ValueError na pierwszym komentarzu. Pomiń puste linie i komentarze, żeby wypisywał tylko odczyty:
09:30:05 ENG-2: 412.5 C 09:30:05 TANK-1: 78.3 % 09:30:10 CABIN: 101.2 kPa 09:30:10 ENG-2: 415.0 C
Na początku pętli usuń spacje z końców linii, a potem użyj continue, gdy jest pusta albo zaczyna się od #. Najpierw strip: jeden komentarz jest wcięty, a linia może zawierać same spacje.
Ukończ etap 1, aby odblokować ten etap.
Jeden odczyt dotarł ucięty: 2026-03-14T09:30:10Z,TANK-1 ma tylko dwa pola i parser się na nim zatrzymuje. Zgłaszaj uszkodzone linie i działaj dalej, a potem policz, co się stało:
09:30:05 ENG-2: 412.5 C 09:30:05 TANK-1: 78.3 % Uszkodzona linia: 2026-03-14T09:30:10Z,TANK-1 09:30:10 CABIN: 101.2 kPa 09:30:10 ENG-2: 415.0 C Przetworzone: 4, uszkodzone: 1
Najpierw podziel na fields, a gdy len(fields) != 4, wypisz linię, policz ją i użyj continue. Licz też przetworzone linie i wypisz sumy po pętli.
Podpowiedzi
Break i continue w pętlach
# break - przerywa pętlę całkowicie
print("Szukanie anomalii:")
data = [10, 12, 11, 9, 50, 8, 7]
for value in data:
if value > 20:
print(f"ANOMALIA: {value}")
break
print(f"Wartość OK: {value}")
# continue - pomija resztę iteracji
print("\nFiltrowanie danych:")
results = [5, -2, 10, -8, 15, -3]
for result in results:
if result < 0:
continue # Pomijamy ujemne
print(f"Poprawny wynik: {result}")
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].