Space Python Ładowanie Pythona…

Przesłonięte paliwo

Napraw kodŚredni 3 etapy

Tankowiec zadokował, pompy pracowały, dziennik mówi, że przetoczono 300 kg. Wyświetlacz paliwa nadal pokazuje dokładnie to samo co przed dokowaniem, a kierownik lotu chce wiedzieć, gdzie podziało się 300 kg materiału pędnego.

Przewidź, co wypisze program, znajdź drugie fuel_kg, napraw funkcję, a potem napisz taką, która nie wpadnie w tę samą pułapkę.

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.

Ile zmiennych fuel_kg istnieje, gdy działa refuel()?

Przewiduj, potem uruchom
Zostaw program bez zmian

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

Zbadaj. Wypisz fuel_kg jako ostatnią linię w refuel() i zapisz to, co się wypisze, w inside_value. Zapisz globalne fuel_kg po wywołaniu w outside_value. Przed sprawdzeniem usuń dodane linie.

Zmień. Przekaż paliwo do refuel(), zwracaj nową ilość i zapisz ją w fuel_kg przy wywołaniu. Ma wypisać:

Zatankowano 300.0 kg
Paliwo na pokładzie: 1500.0 kg
Znajdź obie zmienne
Zwracaj nową sumę

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

Napisz fuel_report(fuel_kg, capacity_kg), która używa tylko swoich parametrów, nigdy zmiennych globalnych, i zwraca linię. Wypisz ją dla zbiornika, a potem dla 250.0 kg:

Paliwo: 1500.0 z 2000.0 kg (75%)
Paliwo: 250.0 z 2000.0 kg (12%)

Ukryty test sprawdza, że funkcja nie czyta żadnych nazw globalnych, więc w środku używaj capacity_kg, a nie CAPACITY_KG.

Dwa raporty
Bez zmiennych globalnych w środku
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

Zmienne lokalne i globalne

Zmienne lokalne istnieją tylko w funkcji. Zmienne globalne są dostępne wszędzie. Funkcja może odczytać globalną bez deklaracji.
zmienne-lokalne-globalne.py
# Zakres zmiennych (scope)

# Zmienna globalna
mission = "Apollo"

def display_mission():
    # Możemy odczytać zmienną globalną
    print(f"Aktualna misja: {mission}")

def change_local():
    # To tworzy NOWĄ zmienną lokalną!
    mission = "Voyager"
    print(f"Lokalna misja: {mission}")

display_mission()
change_local()
print(f"Globalna misja: {mission}")  # Nadal Apollo!
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:].