Bezpieczne wczytanie liczby
Inżynier lotu wpisuje długość odpalenia przed następnym manewrem. Pewnego ranka klawiatura miała polski układ, zamiast 12.5 poszło 12,5, a cały program konsolowy zatrzymał się z błędem ValueError.
Spraw, żeby zamiast tego pytał ponownie, tak długo, aż dostanie liczbę, której da się użyć.
Ukończ etap 1, aby odblokować ten etap.
Pytaj, dopóki dane nie dadzą się zamienić na liczbę. Dla wszystkiego, co się nie da, wypisz To nie liczba: i to, co wpisano, a potem zapytaj ponownie. Przy odpowiedziach twelve, 12,5 i 12.5 program wypisze:
To nie liczba: twelve To nie liczba: 12,5 Odpalenie: 12.5 s
Użyj while True:, z float(text) w try, break, gdy się uda, i except ValueError: dla komunikatu. Sprawdzenie nie pokazuje samego pytania, tylko to, co wypisuje program.
Ukończ etap 1, aby odblokować ten etap.
Odpalenie trwające 0 albo -5 sekund daje się zamienić, ale nie ma sensu. Odrzucaj je też, z Musi być większa niż 0: i tym, co wpisano. Przy -5, abc, 0 i 12.5 program wypisze:
Musi być większa niż 0: -5 To nie liczba: abc Musi być większa niż 0: 0 Odpalenie: 12.5 s
Trzymaj try tylko wokół zamiany. W except użyj continue, żeby przejść od razu do następnego pytania; po try sprawdź liczbę.
Podpowiedzi
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].