Space Python Ładowanie Pythona…

O jedną orbitę za mało

Napraw kodŁatwy 3 etapy

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ą.

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?

Przewiduj, potem uruchom
Zostaw program bez zmian

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
Sprawdź, gdzie kończy się range()
Zapisz każdą orbitę

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.

Wypisz przeloty
Działa dla każdego lotu
Nie jesteś zalogowany, więc postęp zostaje tylko w tej przeglądarce. Zaloguj się, aby go zapisać i korzystać z podpowiedzi oraz rozwiązań.

Podpowiedzi

Pętla for z enumerate i range

enumerate() dodaje numerację do elementów. range() generuje sekwencję liczb. Można określić start, stop i krok.
petla-for-enumerate-range.py
# 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)
Otwórz cały przykład
script.py
PythonWiersz 1, kol. 1Spacje: 4
Ładowanie środowiska Pythona…

Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].