Space Python Ładowanie Pythona…

Dzienny raport misji

Napisz kodŚredni 2 etapy

Na koniec każdego dnia zmiana kończąca dyżur zostawia raport dla następnej: każdy podsystem, jego stan, jego alarmy i to, jaką część dnia działał. Ludzie czytają go na ekranie, czcionką o stałej szerokości. Biuro inżynierskie chce tych samych liczb jako arkusza.

Wygeneruj jedno i drugie z tych samych danych.

Wypisz raport o szerokości WIDTH znaków: tytuł i linię misji wyśrodkowane między dwiema liniami ze znaków =, nagłówki kolumn, wiersz dla każdego podsystemu i linię sum z dodanymi alarmami i średnią dostępnością:

==========================================
           DZIENNY RAPORT MISJI           
           Lumen-3 · 2026-11-05           
==========================================
Podsystem   Status       Alarmy Dostępność
------------------------------------------
POWER       OK                3     99.80%
GNC         WARN              2     97.25%
PROP        OK                0    100.00%
COMMS       DEGRADED          2     94.60%
THERM       OK                0     99.95%
------------------------------------------
Razem                         7     98.32%

Kolumny mają 12, 12, 7 i 11 znaków: {row['subsystem']:<12} dopełnia z prawej, {row['alerts']:>7} z lewej, a {value:>10.2f}% daje dwa miejsca po przecinku i znak procentu. "tekst".center(WIDTH) wyśrodkowuje linię.

Raport

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

Zapisz te same wiersze do report.csv przez csv.DictWriter: wiersz nagłówka z czterema kluczami, potem jeden wiersz na podsystem. Po raporcie wypisz pustą linię, linię o zapisie i plik w takiej postaci, w jakiej został zapisany:

Zapisano report.csv:
subsystem,status,alerts,uptime_pct
POWER,OK,3,99.8
GNC,WARN,2,97.25
PROP,OK,0,100.0
COMMS,DEGRADED,2,94.6
THERM,OK,0,99.95

Otwórz plik z newline=""; writeheader() zapisuje klucze, a writerows(rows) wszystkie wiersze. Ukryte testy usuwają plik, uruchamiają twój program jeszcze raz i czytają to, co zapisze.

Raport i plik
report.csv
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

Formatowanie tekstu z f-string

formatowanie-tekstu-f-string.py
# F-stringi - nowoczesne formatowanie tekstu
astronaut = "John Smith"
mission = "Mars Explorer"
days_in_space = 180

print(f"Astronauta: {astronaut}")
print(f"Misja: {mission}")
print(f"Czas trwania: {days_in_space} dni")

# Możemy też wykonywać obliczenia
print(f"To {days_in_space / 30:.1f} miesięcy")
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:].