Space Python Ładowanie Pythona…

Licznik startów się wysypuje

Napraw kodŚredni 3 etapy

Oprogramowanie kontroli startów liczy starty dnia. Napisano je jako licznik poza funkcją i funkcję, która dodaje do niego jeden. W dniu startu pierwszy start zatrzymał program błędem, którego nikt wcześniej nie widział.

Przewidź, co się stanie, sprawdź dlaczego, a potem napraw to tak, żeby funkcja pozostała niezależna od reszty programu.

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.

W funkcji launches_today += 1 zarówno czyta, jak i przypisuje nazwę.

Ten program kończy się błędem, a programu, który się wysypuje, nie da się sprawdzić. Gdy go uruchomisz i zobaczysz błąd, postaw # przed ostatnią linią, wywołaniem, a potem sprawdź: zobaczysz swoje przewidywanie obok tego, co zrobiło wywołanie.

Przewiduj, potem uruchom

Ukończ etap 1, aby odblokować ten etap.

Zbadaj. Zapisz nazwę błędu w error_name, a to, czy Python traktuje launches_today w funkcji jako local, czy global, w scope.

Zmień. Przekaż licznik do funkcji jako drugi parametr, zwracaj nowy licznik i zapisuj go przy każdym wywołaniu, bez global. Ma wypisać:

Lumen-3 wystartował, dziś: 1
Tern-5 wystartował, dziś: 2
Razem: 2
Nazwij problem
Zwracaj nowy licznik

Ukończ etap 2, aby odblokować ten etap.

Napisz after_burn(fuel_kg, burn_kg), która zwraca pozostałe paliwo, i użyj jej w pętli po zaplanowanych odpaleniach, bez global. Wypisz:

Odpalenie 180.0 kg, zostało 1020.0 kg
Odpalenie 45.5 kg, zostało 974.5 kg
Odpalenie 310.0 kg, zostało 664.5 kg
Trzy odpalenia
Funkcja bez zmiennych globalnych
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

Słowo kluczowe global

Słowo kluczowe global pozwala modyfikować zmienną globalną w funkcji. Używaj oszczędnie - lepiej przekazywać jako parametr.
slowo-kluczowe-global.py
# Modyfikowanie zmiennych globalnych

fuel = 100

def use_fuel(amount):
    global fuel  # Deklaracja użycia globalnej
    if fuel >= amount:
        fuel -= amount
        print(f"Zużyto {amount}. Pozostało: {fuel}%")
    else:
        print("Za mało paliwa!")

print(f"Start: {fuel}%")
use_fuel(30)
use_fuel(50)
use_fuel(30)
print(f"Koniec: {fuel}%")

# UWAGA: Unikaj nadużywania global!
# Lepiej przekazywać wartości jako parametry
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:].