Co przyszło?
Pakiety z czujników silnika nie zawsze przychodzą w spodziewanym kształcie. Niektóre liczby przychodzą jako prawdziwe liczby, inne jako tekst, który tylko wygląda jak liczba, a jedna wartość to "False" w cudzysłowie. Zanim komputer pokładowy cokolwiek policzy, musi wiedzieć, co właściwie dostał.
Powie mu to type(). Przewidź, co pokaże, zbadaj cały pakiet, a potem sam jeden przekonwertuj.
Ukończ etap 1, aby odblokować ten etap.
Nie uruchamiaj jeszcze kodu. Przeczytaj go i zdecyduj, co wypisze w pierwszej linii. Wpisz swoje przewidywanie w prediction, na górze, w cudzysłowie. Potem uruchom kod i porównaj.
Na tym etapie zalicza każde przewidywanie: chodzi o to, żeby pomyśleć przed uruchomieniem. Po sprawdzeniu zobaczysz swoje przewidywanie obok tego, co wypisał Python.
type() wypisuje typ wartości jako <class '...'>. W przewidywaniu wystarczy sama nazwa typu.
Ukończ etap 1, aby odblokować ten etap.
Zbadaj. Sprawdź, jaki typ daje float(temperature), i zapisz go w converted_type. Potem sprawdź, co daje bool(valve_open), True czy False, i zapisz to w bool_of_valve. Uruchom, żeby sprawdzić, a przed sprawdzeniem usuń dodane linie.
Zmień. Wypisz typ każdej wartości z pakietu, po jednej linii, według wzoru dwóch pierwszych linii:
sensor_id: <class 'str'> temperature: <class 'str'> pressure: <class 'float'> valve_open: <class 'str'> sample_count: <class 'int'>
Ukończ etap 2, aby odblokować ten etap.
Wszystko w tym pakiecie z komputera nawigacyjnego przyszło jako tekst. Zamień każdą wartość na typ, jaki powinna mieć, w nowych zmiennych podanych w komentarzach, a potem wypisz każdą nową wartość i jej typ:
altitude_km: 408 <class 'int'> speed_kms: 7.66 <class 'float'> crew: 3 <class 'int'>
Podpowiedzi
Podstawowe typy danych
# Podstawowe typy danych w Pythonie # int - liczby całkowite planet_count = 8 print(type(planet_count)) # float - liczby zmiennoprzecinkowe temperature = -270.45 print(type(temperature)) # str - tekst (string) galaxy = "Droga Mleczna" print(type(galaxy)) # bool - wartość logiczna life_on_mars = False print(type(life_on_mars))
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].