Kazalo[Skrij][Pokaži]
To predavanje bo pomembno, če imate opravka z velikimi programi.
Naučili se boste obravnavati napake z bloki izjem in uporabo komentarjev v Pythonu.
izjeme
Naučili se bomo obravnavati napake v programih Python. Začnimo s pisanjem majhnega programa za pridobivanje starosti uporabnika iz terminala.
age = int(input('Age'))
print(age)
Zaženimo ga.
Zdaj pa poglejte izhodno kodo tega programa. Izhodna koda 0 pomeni, da se je naš program uspešno zaključil in ni bilo nobenih napak. Kaj pa, če ta program zaženemo še enkrat in namesto številske vrednosti vnesemo niz?
Z njegovim sporočilom »neveljaven literal za int() z osnovo 10« dobimo napako vrednosti. V bistvu nam to sporočilo sporoča, da ta niz »qwe« ne vsebuje veljavne domače številke, ki bi jo bilo mogoče pretvoriti v celo število. Zdaj pa poglejte izhodno kodo tega programa. Izhodna koda 1 pomeni, da se je naša izhodna koda zrušila, tako da 0 vedno pomeni uspeh in vse razen 0 pomeni zrušitev. V programiranju tovrstne napake imenujemo izjema.
Kot dober programer pythona bi morali to situacijo predvideti. Nočete dovoliti, da se celoten program zruši samo zato, ker je uporabnik vnesel neveljavno vrednost. Namesto da dovolite, da se program zruši, raje rešite situacijo in natisnite ustrezno sporočilo o napaki. To je tisto, kar vam bom pokazal na tem predavanju.
V Pythonu imamo konstrukcijo, imenovano try except
uporablja za reševanje napak.
try:
age = int(input('Age'))
print(age)
Ti dve vrstici kode sta del našega try:
blok. Dodali bomo except
blok za njim z vrsto napake, ki jo predvidevamo.
except ValueError:
print('Invalid Value')
V primeru napake vrednosti bo zdaj vrnil niz »Neveljavna vrednost«.
Preverimo drugo vrsto napake tako, da spremenimo prejšnji program.
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ValueError:
print('Invalid Value')
Zdaj, če zaženemo ta program in v starost vnesemo '0', številčno vrednost. Tehnično torej ne bi smeli dobiti nobenih izjem.
Zaženimo ga.
Poglej. Naš program se je zrušil in naredili smo "Napako deljenja na nič", ker ne moremo deliti števila z 0. Še enkrat poglejte izhodno kodo. Te vrste napake ali te vrste izjeme nismo mogli ujeti s tem blokom razen.
Ta blok razen lovi samo izjeme napake vrednosti tipa in potrebovali bomo nov blok razen za obravnavo napake ničelnega deljenja. Ustrezno prilagodimo program.
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ZeroDivisionError:
print('Age cannot be 0')
except ValueError:
print('Invalid Value')
Problem je rešen!
- Napaka sintakse
- Vrsta napake
- Name error
- Indexerror
- Valueerror
- Napaka ničelne delitve
- Napaka atributa
- Napaka med izvajanjem
- Keyerror
- Napaka pomnilnika
- Assertionerror
- Indentationerror
- Eoferror
- Napaka s plavajočo vejico
- Overflowerror
- Logična napaka
- Sistemska napaka
- Notimplementederror
- Oserror
- Ioerror
- Referenceerror
- Napaka Unicode
- Aritmetična napaka
- Unicodedecode error
- Unicodeencodeerror
- Unicodetranslateerror
- Napake med izvajanjem
Kot programer se morate zavedati vseh izjem v svojem programu in jih ustrezno obravnavati.
Komentarji
Zdaj bomo govorili o komentarjih v pythonu. Komentarje uporabljamo za dodajanje opomb ali komentarjev našim programom, da izboljšamo berljivost in posredujemo neko sporočilo nekomu, ki bere našo kodo.
Komentarje lahko vpišete v program z uporabo znaka #. Vse, kar napišete za #, bo prevajalnik Python prezrl in ne bo izvedeno. Komentarje lahko dodate na posamezne vrstice kot tudi za vrstico kode.
S temi komentarji lahko razložimo nekaj o naši kodi, lahko jih uporabimo kot opomnike, da stvari popravimo ali razčistimo, ali jih lahko uporabimo za sporočanje stvari drugim razvijalcem, ki berejo našo kodo, ali za razlago, zakaj smo to kodo napisali v določen način. To so dobri primeri uporabe komentarjev. imamo lahko tudi komentarje v več vrsticah. Vsaka vrstica se mora začeti z novim znakom #. Ena stvar, ki se ji morate izogibati pri uporabi komentarjev, je razlaga, kaj počne koda.
Tukaj je primer slabega komentarja:
To je slab komentar, ker mi pove očitno. Pove mi, da bo naslednja vrstica natisnila "Sonce zahaja na zahodu". Težava s tem komentarjem je, da poleg tega, da je dobeseden in ponavljajoč se, če pridete sem in spremenite Zahod v Vzhod, postane ta komentar zastarel. Torej, vsakič, ko posodobimo kodo, se bomo morali vrniti in spremeniti ustrezen komentar.
Skratka, uporabite svoje komentarje, da odgovorite, kako in zakaj, namesto, kaj je.
Tukaj je primer dobrega komentarja:
V prvem komentarju se opozarjam, da moram posodobiti to vrednost dohodka, preden dokončam program, druga vrednost pa sporoča drugim razvijalcem, ki berejo mojo kodo, da ta program ne obravnava vseh napak.
Končno se morate izogibati odvečnim komentarjem, vaši komentarji pa bi morali vaši kodi dodati nekaj vrednosti.
Zaviti!
Izjeme in pripombe sta dva vidika programiranja, ki ju pogosto spregledamo, njun pomen pa je običajno podcenjen.
Zrušiti vaš program je skoraj tako slabo kot če ne komentirate svoje kode, kjer je to potrebno. Naslednje predavanje se bo osredotočilo na razrede in konstruktorje.
Pustite Odgovori