pyladies 2.0 #7 wyjątkowe błędy
TRANSCRIPT
Wyłapywanie błędów po co ?
• Aby program działał mimo drobnych błędów, szczególnie tych których się spodziewamy.
• Aby zabezpieczyć program przed trollami.• Aby zabezpieczyć aplikację przed atakami.
Try/ExceptNa początku wykonywana jest klauzula try
(czyli instrukcje pomiędzy try a except).
Jeżeli nie pojawi się żaden wyjątek klauzula except jest pomijana. Wykonanie instrukcji try uważa się za zakończone.
Try/Except
Jeżeli podczas wykonywania klauzuli try pojawi się wyjątek, reszta niewykonanych instrukcji jest pomijana.
Try/Except
Następnie, w zależności od tego, czy jego typ pasuje do typów wyjątków wymienionych w części except, wykonywany jest kod następujący w tym bloku, a potem interpreter przechodzi do wykonywania instrukcji umieszczonych po całym bloku try...except.
Try/Except
W przypadku pojawienia się wyjątku, który nie zostanie dopasowany do żadnego z wyjątków wymienionych w klauzuli except, zostaje on przekazany do do następnych, zewnętrznych instrukcji try. Jeżeli również tam nie zostanie znaleziony odpowiadający mu blok except, wyjątek ten nie zostanie wyłapany, stanie nieobsłużonym wyjątkiem, a wykonywanie programu zostanie wstrzymane wraz z pojawieniem się komunikatu podobnego do pokazanego powyżej.
Try/Except
W dużym uproszczeniu jest to bardzo specificzny przypadek funkcji warunkwej:
if/elif/else
Pętla while
Pętla while to w wielkim uproszczeniu ciągły if.Funkcja będzie trwała dopóki warunek będzie spełniony.
Funkcje
Wiem już jak zrobić pętle żeby czegoś nie powtarzać wiele razy a co jeśli musimy używać podobnego kodu wiele razy ? W tym celu zostały stworzone funkcje.
Zadanie
W naszej ulubionej aplikacji do BMI zrób szereg zmian:• Powtarzające się fragmenty kodu wynieś do funkcji• Zmień aplikacje aby dopytwała się o poprawne dane aż
nie zostaną on podane przez użytkownika.
Zadanie domoweNapisz gre w zgadnij liczbę ze stu w 5 szansach.Jedyne co komputer może odpowiedzieć to:• Tak trafiłeś to jest moja liczba.• Twoja liczba jest większa od mojej.• Twoja liczba jest mniejsza od mojej.Po trafieniu liczby lub skonczniu szans gra powinna pytać czy chcesz grać jeszcze I zliczać ilośc wygranych I przegranych gracza.Aby generować losowo liczbe komputera użyj funkcji randint.
Zad. dodatkowe przed rozpoczeciem gry gra powinan
pytac czy chcesz zagrac w warint 1z100/5 szansz czy 1z1000/7szans