Przesłonięte paliwo
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ę.
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.
Ile zmiennych fuel_kg istnieje, gdy działa refuel()?
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
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.
Podpowiedzi
Zmienne lokalne i globalne
# 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!
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].