O jedną orbitę za mało
Lot testowy trwa dziesięć orbit, a dziennik lotu powinien mieć linię dla każdej z nich. Dziennik zawsze kończy się o jedną orbitę za wcześnie i ostatniej orbity, tej ważnej dla lądowania, nigdy w nim nie ma.
Przewidź ostatnią linię, sprawdź, gdzie kończy się range(), napraw pętlę, a potem zbuduj harmonogram przelotów nad stacją naziemną.
Ukończ etap 1, aby odblokować ten etap.
Nie uruchamiaj jeszcze kodu. Przeczytaj go i zdecyduj, co wypisze w ostatniej 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.
Jaką liczbę będzie miało orbit przy ostatnim obrocie?
Ukończ etap 1, aby odblokować ten etap.
Zbadaj. Zapisz w orbits_logged, ile orbit zapisuje program. Potem wypisz list(range(1, 10)), żeby zobaczyć każdą liczbę z tego zakresu, i zapisz ostatnią w last_in_range. Przed sprawdzeniem usuń dodane linie.
Zmień. Zapisz wszystkie dziesięć orbit i użyj ORBITS zamiast liczby, żeby dłuższy lot też był zapisany w całości. Ostatnia linia ma być:
Orbita 10: T+920 min
Ukończ etap 2, aby odblokować ten etap.
Stacja naziemna widzi statek co trzecią orbitę: 3, 6, 9 i tak dalej. Wypisz linię dla każdej z tych orbit, aż do ostatniej orbity lotu włącznie:
Przelot nad stacją: orbita 3, T+276 min Przelot nad stacją: orbita 6, T+552 min Przelot nad stacją: orbita 9, T+828 min
range(start, stop, step) przyjmuje trzecią liczbę, krok: range(3, 10, 3) daje 3, 6, 9. Użyj ORBITS jako końca zakresu, żeby lot dwunastoorbitowy obejmował orbitę 12.
Podpowiedzi
Pętla for z enumerate i range
# enumerate() - indeks + element
missions = ["Apollo 11", "Apollo 12", "Apollo 13"]
for number, mission in enumerate(missions, start=1):
print(f"{number}. {mission}")
# range() - generowanie sekwencji liczb
print("\nKwadraty liczb:")
for n in range(1, 6):
print(f"{n}^2 = {n**2}")
# range z krokiem
print("\nLata misji (co 5 lat):")
for year in range(2020, 2041, 5):
print(year)
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].