Zaawansowany kurs programowania w Pythonie
Rozdział
>
Poziom
Obsługa wyjątków
Obsługa wyjątków
Cel
Upakuj zapasy do pudełek i wychwyć wszelkie błędy, które mogą wystąpić przy użyciu wyjątków.
Istnieje kilka zapasów awaryjnych, które należy spakować do zestawów i przechować w skrzyniach na późniejszy użytek. Robienie tego jest dość proste i można je wykonać, używając funkcji, których się nauczyłeś, jednak czasami rzeczy nie układają się zgodnie z planem. Podczas programowania mogłeś zauważyć, że czasami na ekranie pojawiają się błędy, a w edytorze pojawiają się czerwone oznaczenia tam, gdzie wystąpił problem. Możesz temu zaradzić, ustawiając bloki kodu try oraz except.
Te bloki kodu służą do definiowania wyjątków i wychwytywania błędów, zanim zatrzymają one działanie Twojego kodu. Działa to w ten sposób, że używasz try do kodu, który jest problematyczny lub może generować błąd, a except do zastąpienia tego kodu innym, gdy wystąpi błąd, na przykład:
#The try code block attempts to run a code try: number + number + string #This code yeilds an error, you can't sum numbers with string except: #If an error occurs the except code block is run instead number + number + number #The code is switched out by a sum of three numbers instead
Na początek zbierz wszystkie materiały na polu, czyli: puszki z wodą, "thread" oraz trzy kolorowe koce: "blue blanket", "red blanket", "green blanket". Zacznij od udania się na szczyt mapy i zbierz trzy koce, następnie udaj się do jasnego znaku X i użyj funkcji collect(), aby zdobyć "thread" z pojemnika. Następnie przemieść się na dół mapy i zbierz wszystkie puszki z wodą.
Gdy wszystko zostanie zebrane, udaj się do ciemnego znaku X nad niebieskim dywanikiem, aby rozpocząć rozmieszczanie zebranych materiałów. Najpierw przypisz zmiennym wodę i thread wartości 2 i 3 jednostek, odpowiednio, w następujący sposób: water_can = 2 oraz thread = 3. Następnie utwórz zestawy jako zmienne, dodając wcześniej utworzone zmienne do kolorowych koców w następującym formacie:
blue_kit = water_can + thread + "blue blanket" red_kit = water_can + thread + "red blanket" green_kit = water_can + thread + "green blanket" # Add all elements together into kits for ease of storage
Gdy zestawy zostaną utworzone w zmiennych blue_kit, red_kit i green_kit, nadszedł czas, aby umieścić je w skrzyniach odpowiadających poszczególnym kolorom. Jednak możesz zauważyć, że kod zwraca błąd. Dlaczego? Wszystko jest tak, jak powinno, a instrukcje zostały wykonane. Czasami, mimo intuicyjnego podejścia, rzeczy nie działają tak, jakbyśmy chcieli – w tym przypadku nie można dodać liczby do ciągu znaków.
Jak więc zaradzić temu problemowi? Użyj bloków try/except, aby przechwycić błąd i zastąpić go odpowiednią wartością. Dla każdej z trzech (3) zmiennych zastosuj te wyjątki, które w przypadku błędu zamienią kod na wartość liczbową zamiast konkretnego ciągu znaków.
try: blue_kit = water_can + thread + "blue blanket" except: blue_kit = water_can + thread + 1
Chociaż w tym przypadku jesteśmy świadomi błędu, zdarzają się sytuacje, gdy wartości w zmiennych nie są tak oczywiste lub mogą się różnić w zależności od pewnych warunków, co czyni to narzędzie przydatnym do rozwiązywania problemów lub wychwytywania błędów w czasie wykonywania programu.
Ukończ poziom, idąc do ciemnych znaków X na kolorowych dywanach, zwróć się w stronę skrzyń i użyj funkcji place(), aby umieścić zmienne zestawów odpowiadające kolorom na właściwych skrzyniach.