Learning python with flask (PyLadies Malaysia 2017 Workshop #1)
Pyladies 2 - 7 Wyjątkowe błędy
-
Upload
piotr-dyba -
Category
Software
-
view
430 -
download
2
Transcript of Pyladies 2 - 7 Wyjątkowe błędy
![Page 1: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/1.jpg)
![Page 2: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/2.jpg)
PyTraning2.0 #7:Wyjątkowe błędy
try/except, while, def
![Page 3: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/4.jpg)
Try/Except ogólny wyglad:
![Page 5: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/7.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/8.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/10.jpg)
Try/Except – przykłady:
Nie rób tak nigdy !
![Page 11: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/11.jpg)
Try/Except – przykłady:
![Page 12: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/12.jpg)
Try/Except – przykłady:
![Page 13: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/13.jpg)
Try/Except – przykłady:
![Page 14: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/14.jpg)
Try/Except – przykłady:
![Page 15: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/15.jpg)
Try/Except – przykłady:
![Page 16: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/16.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/17.jpg)
Pętla whileprzykłady
![Page 18: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/18.jpg)
Pętla while przykłady
![Page 19: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/20.jpg)
Funkcje - przykłady
![Page 21: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/21.jpg)
Funkcje - przykłady
![Page 22: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/22.jpg)
Funkcje - przykłady
![Page 23: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/23.jpg)
Funkcje - przykłady
![Page 24: Pyladies 2 - 7 Wyjątkowe błędy](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/24.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/25.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062822/587efdeb1a28ab35528b66c7/html5/thumbnails/26.jpg)