Zestawienie startów
Co rano kontrola misji chce jednej krótkiej listy: które starty nadchodzą, w jakiej kolejności i ile zostało do każdego. API archiwum startów ma to wszystko, jako JSON, w przypadkowej kolejności i razem ze startami, które już się odbyły.
Zbuduj zestawienie, a potem uruchom je na żywym zegarze.
Ukończ etap 1, aby odblokować ten etap.
Sparsuj schedule_text, zostaw starty, których okno zaczyna się po report_time, posortuj je według okna i wypisz:
Nadchodzące starty: 4 2026-11-05 09:10 UTC Aurora Relay (KASA) 2026-11-05 14:30 UTC Lumen-3 (JAXA) 2026-11-12 03:15 UTC Kestrel-7 (ISRO) 2026-11-20 18:45 UTC Polaris Cargo 4 (NASA)
Mała funkcja, na przykład window(launch), zwracająca sparsowany obiekt datetime, nadaje się do porównania i jako key dla sorted(). strftime("%Y-%m-%d %H:%M") formatuje datę i godzinę.
Ukończ etap 1, aby odblokować ten etap.
Dodaj czas pozostały do każdego startu, jako dni, godziny i minuty, i oznacz start wstrzymany:
Nadchodzące starty: 4 2026-11-05 09:10 UTC Aurora Relay (KASA) za 0d 01h 10m 2026-11-05 14:30 UTC Lumen-3 (JAXA) za 0d 06h 30m 2026-11-12 03:15 UTC Kestrel-7 (ISRO) za 6d 19h 15m 2026-11-20 18:45 UTC Polaris Cargo 4 (NASA) za 15d 10h 45m [WSTRZYMANY]
left = window(launch) - report_time to timedelta: left.days to pełne dni, a left.seconds to reszta czasu, w sekundach.
Ukończ etap 2, aby odblokować ten etap.
Kontrola misji uruchamia zestawienie na żywym zegarze. Zastąp stały report_time przez datetime.now(timezone.utc), importując też timezone. Nic więcej się nie zmienia.
Po uruchomieniu zobaczysz zestawienie na tę chwilę; po listopadzie 2026 lista będzie pusta. Sprawdzenie zatrzymuje zegar dwa razy, o 08:00 UTC 5 listopada i o północy 12 listopada, co daje:
Nadchodzące starty: 2 2026-11-12 03:15 UTC Kestrel-7 (ISRO) za 0d 03h 15m 2026-11-20 18:45 UTC Polaris Cargo 4 (NASA) za 8d 18h 45m [WSTRZYMANY]
Podpowiedzi
Import modułów systemowych
# Moduł to skrzynka z narzędziami, którą ktoś już zbudował i przetestował za Ciebie
# Zwykły import wczytuje cały moduł
import sys
import platform
import math
# from ... import wczytuje tylko jedno narzędzie
from math import sqrt
# as nadaje modułowi krótszy przydomek
import random as rng
# Przy zwykłym imporcie: nazwa modułu, kropka, potem narzędzie
print("Wersja Pythona:", platform.python_version())
print("System:", platform.system())
print("Python mieszka w:", sys.executable)
# math zawiera stałe, których nie chciałbyś wpisywać z pamięci
radius_km = 6371
print("Obwód Ziemi:", round(2 * math.pi * radius_km), "km")
# sqrt przyszło samo, więc nie potrzebuje kropki przed sobą
print("Pierwiastek kwadratowy z 9:", sqrt(9))
# rng to po prostu przydomek dla random
print("Losowy dzień roku marsjańskiego:", rng.randint(1, 687))
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].