Space Python Ładowanie Pythona…

Brakujący odczyt

Napisz kodŚredni 2 etapy

Czujniki nie zawsze odpowiadają. Gdy któryś pominie odczyt, sterownik przekazuje twojej kontroli alarmu None zamiast liczby, a kontrola z „Poziomu alarmu” zatrzymuje się z błędem TypeError w połowie przebiegu.

Rozbuduj swoją kontrolę, żeby brakujący odczyt był zgłaszany, a nie powodował awarii, a potem obsłuż brakujące wartości także w kanale telemetrii.

Kod startowy to twoja kontrola z „Poziomu alarmu”, ale tym razem czujnik nie odpowiedział i temperature_c to None. Uruchom go: porównanie None z liczbą kończy się błędem TypeError. Najpierw sprawdź None, żeby program wypisał:

ENG-2: NO DATA

Użyj temperature_c is None, a istniejący łańcuch z jego print przenieś do else, z wcięciem o cztery spacje więcej. Nie używaj if not temperature_c: 0 °C to prawdziwy odczyt.

Zgłoś brakujący odczyt
Prawdziwe odczyty nadal działają

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

Odczyty przychodzą teraz z kanału telemetrii, a brakująca wartość pokazuje się jako puste pole: dwa przecinki bez niczego pomiędzy. Kod startowy rozkłada linię i zatrzymuje się z błędem ValueError, bo float("") nie ma sensu. Sprawdź pole przed konwersją:

ENG-2: NO DATA

Najpierw usuń spacje z pola, żeby pole z samą spacją też liczyło się jako puste, a potem porównaj je z "". Konwertuj przez float() dopiero w else.

Zgłoś puste pole
Poprawnie dla każdej linii
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

Instrukcja if-elif-else

Instrukcja elif (else if) sprawdza kolejne warunki. Program przechodzi przez warunki aż znajdzie prawdziwy lub dotrze do else.
instrukcja-if-elif-else.py
# If-elif-else: wiele warunków

speed = 25000  # km/h

if speed < 1000:
    print("Faza: Start")
elif speed < 10000:
    print("Faza: Wznoszenie")
elif speed < 28000:
    print("Faza: Orbitowanie")
else:
    print("Faza: Prędkość ucieczki!")

# Ocena misji
points = 85

if points >= 90:
    rating = "Doskonała"
elif points >= 75:
    rating = "Dobra"
elif points >= 60:
    rating = "Zadowalająca"
else:
    rating = "Do poprawy"

print(f"Ocena misji: {rating}")
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:].