Space Python Ładowanie Pythona…

Udowodnij poprawkę

Napisz kodŚredni 2 etapy

Błąd wspólnej listy w add_sample() jest naprawiony. Skąd wiesz, że taki zostanie? Za pół roku ktoś uporządkuje funkcję, a log=[] wygląda o wiele prościej niż sprawdzenie None.

Napisz test, który udowodni poprawkę: ma przechodzić teraz i nie przechodzić dla starego kodu. Ukryte testy przywracają stary kod, żeby to sprawdzić.

Napisz sprawdzenia assert, które przechodzą dla tej funkcji, ale nie przeszłyby dla starej: wywołaj ją dwa razy bez dziennika i sprawdź, że każde wywołanie dostało listę tylko ze swoim pomiarem. Potem wypisz:

Wszystkie sprawdzenia przeszły

Zostaw funkcję bez zmian. Ukryte testy zamieniają ją na starą wersję z log=[], a twoje sprawdzenia muszą ją zatrzymać.

Sprawdzenia, które przechodzą
Sprawdzenia, które łapią stary błąd

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

Poprawka może pójść za daleko. Dodaj sprawdzenia, że przekazany dziennik nadal dostaje pomiar: wynik zawiera stare pomiary i nowy, i jest dokładnie tą listą, którą przekazano. Zostaw linię o powodzeniu na końcu.

Ukryte testy próbują teraz także dwóch „poprawek”, które to psują: jednej, która ignoruje przekazany dziennik, i drugiej, która zwraca kopię zamiast do niego dopisywać.

Sprawdzenia, które przechodzą
Sprawdzenia, które łapią przesadzoną poprawkę
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

Wartości domyślne parametrów

Parametry mogą mieć wartości domyślne. Używane gdy argument nie zostanie podany przy wywołaniu. Domyślne parametry na końcu.
wartosci-domyslne-parametrow.py
# Parametry z wartościami domyślnymi

def ship_status(name, fuel=100, crew=True):
    print(f"Statek: {name}")
    print(f"Paliwo: {fuel}%")
    print(f"Załoga na pokładzie: {crew}")
    print()

# Wszystkie argumenty
ship_status("Explorer", 75, True)

# Tylko wymagane
ship_status("Voyager")

# Mieszane - argumenty nazwane
ship_status("Pioneer", crew=False)
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:].