Zaokrąglić czy uciąć?
Manifest ładunku potrzebuje pełnych kilogramów, a części dziesiętnej można się pozbyć na dwa sposoby: przez int() i przez round(). Zwykle dają to samo. Gdy nie, skrzynia na papierze może ważyć kilogram mniej niż na wadze.
Przewidź, gdzie się różnią, zbadaj regułę, która zaskakuje większość programistów, a potem sam zaokrąglij odczyt paliwa.
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.
Obie funkcje inaczej traktują część dziesiętną. Co daje każda z nich dla 1499.7?
Ukończ etap 1, aby odblokować ten etap.
Zbadaj. Zapisz, co daje int(2.9), w int_of_2_9, a co daje round(2.5), w round_of_2_5. Uruchom round(2.5), zanim odpowiesz: większość osób się myli.
Zmień. Wypisz int() i round() obok siebie dla wszystkich trzech mas, według pierwszej linii:
1499.7 kg: int 1499, round 1500 820.2 kg: int 820, round 820 312.5 kg: int 312, round 312
Ukończ etap 2, aby odblokować ten etap.
Wyświetlacz paliwa pokazuje odczyt z jednym miejscem po przecinku, a odprawa zaokrągla go do pełnych setek. round() przyjmuje do tego drugą liczbę: round(fuel_kg, 1) zostawia jedno miejsce po przecinku, a round(fuel_kg, -2) zaokrągla do setek. Wypisz:
Wyświetlacz paliwa: 1234.6 kg (około 1200 kg)
round(fuel_kg, -2) daje 1200.0, czyli float. Opakuj to w int(), żeby pozbyć się .0.
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:].