Magiczne liczby
Raport konstrukcyjny lądownika Python One oblicza ciężar każdej części. Kod jest poprawny, ale pełen gołych liczb, takich jak 9.81 i 1000. Programiści nazywają je magicznymi liczbami: działają, ale nikt, kto czyta kod, nie wie, co oznaczają, a zmiana jednej oznacza szukanie każdej kopii.
Przewidź, co wypisze raport, sprawdź, gdzie kryją się magiczne liczby, a potem nadaj im nazwy. Refaktoryzacja to ulepszanie kodu bez zmiany tego, co robi, więc wynik musi zostać dokładnie taki sam.
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.
Oblicz linię lądownika: masa razy 9.81, podzielone przez 1000, z dwoma miejscami po przecinku.
Ukończ etap 1, aby odblokować ten etap.
Zbadaj. Policz, ile razy 9.81 występuje w dwóch print, i zapisz liczbę w times_981. Każda kopia to miejsce, które ktoś musiałby zmienić, gdyby raport liczono dla Księżyca.
Zmień. Dodaj nad print dwie stałe zapisane wielkimi literami, żeby każdy wiedział, że się nie zmieniają, na przykład GRAVITY = 9.81 i N_PER_KN = 1000. Użyj ich w obu print zamiast gołych liczb. Wynik musi zostać dokładnie taki sam:
Lądownik: 11.77 kN Łazik: 3.43 kN
Ukończ etap 2, aby odblokować ten etap.
Jazda próbna łazika odbywa się na Marsie, gdzie grawitacja to 3.71 m/s². Napisz raport ciężaru ze stałymi od początku: jedną dla grawitacji Marsa i jedną dla liczby niutonów w kiloniutonie, obie wielkimi literami. Wypisz:
Łazik na Marsie: 3.80 kN
Podpowiedzi
Tworzenie zmiennych
# Zmienne przechowują dane
# Tworzymy zmienną przez przypisanie wartości
ship_name = "Enterprise"
crew_count = 430
warp_speed = 9.9
in_space = True
print("Statek:", ship_name)
print("Załoga:", crew_count, "osób")
print("Prędkość Warp:", warp_speed)
print("W kosmosie:", in_space)
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].