Jasne komunikaty błędów
Skrypt planowania zapytał fuel_needed() o odpalenie trwające -5 sekund, po błędzie znaku gdzieś wcześniej, i dostał -62.5 kg. Nikt tego nie zauważył, dopóki w budżecie paliwa nie zabrakło 62.5 kg.
Funkcja, która dostaje wartość, z którą nie może pracować, powinna to powiedzieć, głośno i wyraźnie, w chwili, gdy to się dzieje.
Ukończ etap 1, aby odblokować ten etap.
Spraw, żeby fuel_needed() zgłaszała ValueError dla ujemnej długości odpalenia, z komunikatem pokazującym wartość, żeby wywołania pod nią wypisały:
500.0 Odmowa: długość odpalenia nie może być ujemna: -5 s
Napisz raise ValueError(f"długość odpalenia nie może być ujemna: {burn_s} s") w if, przed obliczeniem. Odpalenie przez 0 sekund jest dozwolone.
Ukończ etap 1, aby odblokować ten etap.
Długość odpalenia wczytana z pliku przychodzi jako tekst "40", a funkcja zatrzymuje się mylącym TypeError z porównania. Najpierw sprawdź typ i zgłoś własny TypeError, podając typ, który przyszedł:
500.0 Odmowa: długość odpalenia nie może być ujemna: -5 s Odmowa: długość odpalenia musi być liczbą, a jest str
Użyj if not isinstance(burn_s, (int, float)): i type(burn_s).__name__ dla nazwy typu. To sprawdzenie musi stać przed burn_s < 0, czyli linią, która zawodzi dla tekstu.
Podpowiedzi
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].