Odczyty, które się nie sumują
Czujniki zbiornika paliwa wysyłają odczyty do komputera pokładowego jako tekst, tak jak większość danych przychodzących z plików, formularzy i sieci. Kod, który je sumuje, wygląda poprawnie, ale suma, którą wypisuje, nie ma sensu.
Przewidź, co wypisze, sprawdź dlaczego, napraw go, a potem sam obsłuż odczyty z częścią dziesiętną.
Ukończ etap 1, aby odblokować ten etap.
Nie uruchamiaj jeszcze kodu. Przeczytaj go i zdecyduj, co wypisze. 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.
Przyjrzyj się uważnie, jak zapisano oba odczyty.
Ukończ etap 1, aby odblokować ten etap.
Zbadaj. Zapisz typ odczytów w reading_type: int, float, str albo bool.
Zmień. Odczyty przychodzą jako tekst, więc zostaw bez zmian dwie linie, które je ustawiają. Zamień je na liczby tam, gdzie je dodajesz, przez int(), żeby program wypisał:
200
Ukończ etap 2, aby odblokować ten etap.
Czujniki ciśnienia w kabinie wysyłają odczyty z częścią dziesiętną, znowu jako tekst. Dodaj wszystkie trzy i wypisz sumę z jednym miejscem po przecinku:
Suma: 301.5 kPa
Najpierw spróbuj int("101.3") i zobacz, co się stanie: int() czyta tylko liczby całkowite. Do dziesiętnych potrzebujesz float().
Podpowiedzi
Konwersja typów danych
# Konwersja typów danych
# String na liczbę
distance_text = "384400"
distance_number = int(distance_text)
print("Do Księżyca:", distance_number, "km")
# Liczba na string
year = 2024
year_text = str(year)
print("Misja " + year_text)
# Int na float
passengers = 7
print("Pasażerów:", float(passengers))
# Float na int (obcina część dziesiętną!)
speed = 28.7
print("Zaokrąglone:", int(speed))
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].