26

Pyladies 2 - 7 Wyjątkowe błędy

Embed Size (px)

Citation preview

Page 1: Pyladies 2 - 7 Wyjątkowe błędy
Page 2: Pyladies 2 - 7 Wyjątkowe błędy

PyTraning2.0 #7:Wyjątkowe błędy

try/except, while, def

Page 3: Pyladies 2 - 7 Wyjątkowe błędy

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.

Page 4: Pyladies 2 - 7 Wyjątkowe błędy

Try/Except ogólny wyglad:

Page 5: Pyladies 2 - 7 Wyjątkowe błędy

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.

Page 6: Pyladies 2 - 7 Wyjątkowe błędy

Try/Except

Jeżeli podczas wykonywania klauzuli try pojawi się wyjątek, reszta niewykonanych instrukcji jest pomijana.

Page 7: Pyladies 2 - 7 Wyjątkowe błędy

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.

Page 8: Pyladies 2 - 7 Wyjątkowe błędy

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.

Page 9: Pyladies 2 - 7 Wyjątkowe błędy

Try/Except

W dużym uproszczeniu jest to bardzo specificzny przypadek funkcji warunkwej:

if/elif/else

Page 10: Pyladies 2 - 7 Wyjątkowe błędy

Try/Except – przykłady:

Nie rób tak nigdy !

Page 11: Pyladies 2 - 7 Wyjątkowe błędy

Try/Except – przykłady:

Page 12: Pyladies 2 - 7 Wyjątkowe błędy

Try/Except – przykłady:

Page 13: Pyladies 2 - 7 Wyjątkowe błędy

Try/Except – przykłady:

Page 14: Pyladies 2 - 7 Wyjątkowe błędy

Try/Except – przykłady:

Page 15: Pyladies 2 - 7 Wyjątkowe błędy

Try/Except – przykłady:

Page 16: Pyladies 2 - 7 Wyjątkowe błędy

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.

Page 17: Pyladies 2 - 7 Wyjątkowe błędy

Pętla whileprzykłady

Page 18: Pyladies 2 - 7 Wyjątkowe błędy

Pętla while przykłady

Page 19: Pyladies 2 - 7 Wyjątkowe błędy

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.

Page 20: Pyladies 2 - 7 Wyjątkowe błędy

Funkcje - przykłady

Page 21: Pyladies 2 - 7 Wyjątkowe błędy

Funkcje - przykłady

Page 22: Pyladies 2 - 7 Wyjątkowe błędy

Funkcje - przykłady

Page 23: Pyladies 2 - 7 Wyjątkowe błędy

Funkcje - przykłady

Page 24: Pyladies 2 - 7 Wyjątkowe błędy

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.

Page 25: Pyladies 2 - 7 Wyjątkowe błędy

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

Page 26: Pyladies 2 - 7 Wyjątkowe błędy