Sisukord[Peida][Näita]
See loeng on oluline, kui tegemist on suurte programmidega.
Õpid tõrkeid käsitlema erandiplokkide ja Pythonis kommentaaride abil.
Erandeid
Õpime Pythoni programmide vigade käsitlemist. Alustame sellest, et kirjutame väikese programmi, et saada terminalist kasutaja vanust.
age = int(input('Age'))
print(age)
Paneme käima.
Nüüd vaadake selle programmi väljumiskoodi. Väljumiskood 0 tähendab, et meie programm lõppes edukalt ja vigu ei esinenud. Aga mis siis, kui käivitame selle programmi veel korra ja sisestame numbrilise väärtuse asemel stringi?
Saame väärtuse vea tema sõnumiga "invalid literal for int() with base 10" Põhimõtteliselt ütleb see sõnum meile, et see string "qwe" ei sisalda kehtivat kodunumbrit, mida saaks täisarvuks teisendada. Nüüd vaadake selle programmi väljumiskoodi. Väljumiskood 1 tähendab, et meie väljumiskood jooksis kokku, seega 0 tähendab alati edu ja kõik peale 0 tähendab krahhi. Programmeerimisel viitame sellisele veale erandina.
Hea Pythoni programmeerijana peaksite seda olukorda ette nägema. Te ei soovi lasta kogu programmil kokku jooksma lihtsalt seetõttu, et kasutaja sisestas vale väärtuse. Nii et selle asemel, et lasta programmil kokku kukkuda, peaksite olukorraga hakkama saama ja printima korraliku veateate. Seda ma teile selles loengus näitan.
Pythonis on meil konstruktsioon nimega try except
kasutatakse veaolukordade lahendamiseks.
try:
age = int(input('Age'))
print(age)
Need kaks koodirida on osa meie koodist try:
blokk. Me lisame except
blokeerige pärast seda eeldatava veatüübiga.
except ValueError:
print('Invalid Value')
Nüüd tagastab see väärtuse vea korral stringi "Invalid Value".
Kontrollime teist tüüpi viga, muutes eelmist programmi.
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ValueError:
print('Invalid Value')
Kui käivitame selle programmi ja sisestame vanuseks 0, siis numbrilise väärtuse. Seega ei tohiks me tehniliselt mingeid erandeid teha.
Paneme käima.
Vaata. Meie programm jooksis kokku ja tegime nulljaotuse vea, kuna me ei saa arvu 0-ga jagada. Vaata veel kord väljumiskoodi. Me ei saanud seda tüüpi viga ega erandit selle va plokiga tuvastada.
See va plokk püüab kinni ainult tüübiväärtuse vea erandid ja nulljaotuse vea käsitlemiseks vajame uut v.a plokki. Muudame programmi vastavalt.
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ZeroDivisionError:
print('Age cannot be 0')
except ValueError:
print('Invalid Value')
Probleem on lahendatud!
- Süntaksiviga
- Trükiviga
- Nimeviga
- Indekseerija
- Valueerror
- Nulldivisioni viga
- Attributeerror
- Käitusaja viga
- Võtme viga
- Mälu viga
- Väiteviga
- Treppimise viga
- Eoferror
- Ujuvkursitõrge
- Overflowerror
- Loogika viga
- Süsteemitõrge
- Mitterakendatud viga
- Oserror
- Ioerror
- Referenceerror
- Unicodeerror
- Aritmeetiline viga
- Unicodedecodeerror
- Unicodeencodeerror
- Unicode translateerror
- Käitusaja vead
Programmeerijana peaksite olema teadlik kõigist oma programmis esinevatest eranditest ja peaksite neid vastavalt käsitlema.
Kommentaarid
Nüüd räägime pythonis kommentaaridest. Kasutame kommentaare oma programmidele märkuste või kommentaaride lisamiseks, et parandada loetavust ja edastada sõnumit kellelegi, kes meie koodi loeb.
Kommentaare saab programmis kirjutada #-märgi abil. Pythoni kompilaator ignoreerib kõike, mida kirjutate pärast # ja seda ei käivitata. Kommentaare saab lisada nii üksikutele ridadele kui ka pärast koodirida.
Nende kommentaaridega saame oma koodi kohta midagi seletada, kasutada neid meeldetuletustena asjade parandamiseks või klaarimiseks või nende abil suhelda teiste meie koodi lugevate arendajatega või selgitada, miks me selle koodi kirjutasime teatud viisil. Need on head kasutusjuhud kommentaaride kasutamiseks. meil võib olla ka kommentaare mitmel real. Iga rida peaks algama uue # märgiga. Nüüd on üks asi, mida peate kommentaaride kasutamisel vältima, selgitades, mida kood teeb.
Siin on näide halvast kommentaarist:
See on halb kommentaar, sest see räägib mulle ilmselgest. See ütleb mulle, et järgmine rida trükitakse "Päike loojub läänes". Nüüd on selle kommentaari probleem selles, et peale selle, et see kommentaar on paljusõnaline ja korduv, kui tulete siia ja vahetate lääne ida vastu, on see kommentaar aegunud. Seega peame iga kord, kui oma koodi värskendame, tagasi tulema ja vastavat kommentaari muutma.
Lühidalt, kasutage oma kommentaare, et vastata küsimusele kuidas ja miks, mitte mis on.
Siin on näide heast kommentaarist:
Esimeses kommentaaris tuletan endale meelde, et pean seda sissetuleku väärtust värskendama enne programmi lõpetamist ja teine väärtus on teistele minu koodi lugevatele arendajatele ütlemine, et selles programmis kõiki vigu ei käsitleta.
Kokkuvõttes peaksite vältima üleliigseid kommentaare ja teie kommentaarid peaksid teie koodile väärtust lisama.
Tõmba otsad kokku!
Erandid ja kommentaarid on programmeerimise kaks aspekti, mis sageli tähelepanuta jäetakse ja nende olulisust alahinnatakse.
Programmi kokkujooksmine on peaaegu sama halb kui koodi mitte kommenteerimine, kus see on vajalik. Järgmine loeng keskendub klassidele ja konstruktoritele.
Jäta vastus