Raport telemetrii
Stacja naziemna nie dostaje już jednego odczytu naraz: kanał co sekundę dostarcza blok linii. Kontrolerzy lotu chcą je widzieć jako raport, który da się przejrzeć jednym spojrzeniem, a nie jako surowy tekst rozdzielony przecinkami.
Rozbuduj swój parser z „Odczytaj linię telemetrii”, żeby czytał cały blok, a potem ułóż go w tabelę z wyrównanymi kolumnami.
Ukończ etap 1, aby odblokować ten etap.
Kod startowy zawiera kanał i twój parser z „Odczytaj linię telemetrii”, który czyta jedną linię. Zastąp parser tak, żeby czytał wszystkie trzy linie kanału i wypisywał każdy odczyt w jednym wierszu: godzinę, czujnik, wartość i jednostkę.
09:30:05 ENG-2 412.5 C 09:30:06 CAB-1 101.3 kPa 09:30:07 BAT-3 87.2 %
feed.split("\n") dzieli kanał na linie, a każda linia dzieli się przy przecinkach jak wcześniej. Godzina to [11:19] znacznika czasu. print() wstawia spację między swoje wartości.
Ukończ etap 1, aby odblokować ten etap.
Teraz zrób z tego raport: wiersz nagłówka i kolumny, które się wyrównują, z wartościami wyrównanymi do prawej i jednym miejscem po przecinku.
CZAS CZUJNIK WARTOŚĆ JEDNOSTKA 09:30:05 ENG-2 412.5 C 09:30:06 CAB-1 101.3 kPa 09:30:07 BAT-3 87.2 %
Użyj szerokości jak w „Wyrównanej tablicy statusu”: kolumna godziny ma 10 znaków, a kolumna czujnika 9, obie wyrównane do lewej; wartość jest wyrównana do prawej w 7 znakach, jako :>7.1f, żeby przecinki dziesiętne stały w jednej linii; potem dwie spacje i jednostka. Nagłówek używa tych samych szerokości.
Podpowiedzi
Formatowanie tekstu z f-string
# F-stringi - nowoczesne formatowanie tekstu
astronaut = "Jan Kowalski"
mission = "Mars Explorer"
days_in_space = 180
# Wstawiamy zmienne w tekst za pomocą {}
print(f"Astronauta: {astronaut}")
print(f"Misja: {mission}")
print(f"Czas trwania: {days_in_space} dni")
# Możemy też wykonywać obliczenia
print(f"To jest {days_in_space / 30:.1f} miesięcy")
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].