Sisällysluettelo[Piilottaa][Näytä]
Tämä luento on tärkeä, jos käsittelet suuria ohjelmia.
Opit käsittelemään virheitä poikkeuslohkojen ja kommenttien avulla Pythonissa.
Poikkeukset
Aiomme oppia käsittelemään virheitä Python-ohjelmissa. Aloitetaan kirjoittamalla pieni ohjelma saadaksesi käyttäjän iän päätteestä.
age = int(input('Age'))
print(age)
Ajetaan se.
Katso nyt tämän ohjelman poistumiskoodia. Poistumiskoodi 0 tarkoittaa, että ohjelmamme päättyi onnistuneesti eikä virheitä ollut. Mutta entä jos suoritamme tämän ohjelman vielä kerran ja syötämme numeroarvon sijaan merkkijonon?
Saamme arvovirheen hänen viestissään "invalid literal for int() with kantaluku 10" Pohjimmiltaan tämä viesti kertoo meille, että tämä merkkijono "qwe" ei sisällä kelvollista kotinumeroa, joka voidaan muuntaa kokonaisluvuksi. Katso nyt tämän ohjelman poistumiskoodia. Poistumiskoodi 1 tarkoittaa, että poistumiskoodimme kaatui, joten 0 tarkoittaa aina onnistumista ja kaikki paitsi 0 tarkoittaa kaatumista. Ohjelmoinnissa viittaamme tällaiseen virheeseen poikkeuksena.
Hyvänä python-ohjelmoijana sinun pitäisi ennakoida tämä tilanne. Et halua antaa koko ohjelmasi kaatua vain siksi, että käyttäjä on antanut virheellisen arvon. Joten sen sijaan, että annat ohjelman kaatua, sinun tulee käsitellä tilanne ja tulostaa oikea virheilmoitus. Sen aion näyttää sinulle tässä luennossa.
Pythonissa meillä on konstruktio nimeltä try except
käytetään käsittelemään virhetilanteita.
try:
age = int(input('Age'))
print(age)
Nämä kaksi koodiriviä ovat osa meidän try:
lohko. Me lisäämme except
estää sen jälkeen odottamamme virhetyypin.
except ValueError:
print('Invalid Value')
Se palauttaa nyt merkkijonon "Virheellinen arvo" arvovirheen sattuessa.
Tarkistetaan muunlainen virhe muuttamalla edellistä ohjelmaa.
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ValueError:
print('Invalid Value')
Jos nyt suoritamme tämän ohjelman ja syötämme iän '0', numeerinen arvo. Siksi teknisesti meidän ei pitäisi saada poikkeuksia.
Ajetaan se.
Katso. Ohjelmamme kaatui ja teimme "Zero Division Error" -virheen, koska emme voi jakaa lukua nollalla. Katso vielä kerran poistumiskoodia. Emme voineet havaita tällaista virhettä tai tällaista poikkeusta tällä paitsi lohkolla.
Tämä paitsi lohko nappaa vain tyyppiarvovirheen poikkeuksia ja tarvitsemme uuden paitsi lohkon käsittelemään Zero Division Error -virhettä. Muokataan ohjelmaa vastaavasti.
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ZeroDivisionError:
print('Age cannot be 0')
except ValueError:
print('Invalid Value')
Ongelma on ratkaistu!
- Syntaksivirhe
- Tyyppivirhe
- Nimivirhe
- Indexerror
- Arvovirhe
- Zerodivision virhe
- Attributeerror
- Runtime error
- Keyerror
- Muistivirhe
- Assertionerror
- Sisennysvirhe
- Eoferror
- Kelluva osoitinvirhe
- Overflowerror
- Looginen virhe
- Järjestelmävirhe
- Ei toteutettu virhe
- Oserror
- Ioerror
- Referenceerror
- Unicodeerror
- Aritmeettinen virhe
- Unicodedecodeerror
- Unicodeencodeerror
- Unicodetranslateerror
- Runtime Errors
Ohjelmoijana sinun tulee olla tietoinen kaikista ohjelmassasi olevista poikkeuksista ja käsitellä niitä niiden mukaisesti.
Kommentit
Nyt aiomme puhua kommenteista pythonissa. Käytämme kommentteja lisätäksemme muistiinpanoja tai kommentteja ohjelmiimme parantaaksemme luettavuutta ja välittääksemme viestin jollekulle, joka lukee koodiamme.
Ohjelmaan voi kirjoittaa kommentteja #-merkillä. Python-kääntäjä jättää huomioimatta kaiken, mitä kirjoitat #:n jälkeen, eikä sitä suoriteta. Voit lisätä kommentteja yksittäisille riveille sekä koodirivin jälkeen.
Näillä kommenteilla voimme selittää jotain koodistamme, voimme käyttää niitä muistutuksena asioiden korjaamiseen tai selvittämiseen, tai voimme käyttää niitä viestiäksemme muiden koodiamme lukevien kehittäjien kanssa tai selittääksemme, miksi olemme kirjoittaneet tämän koodin tietyllä tavalla. Nämä ovat hyviä käyttötapauksia kommenttien käyttämiseen. voimme myös kommentoida useilla riveillä. Jokaisen rivin tulee alkaa uudella #-merkillä. Nyt yksi asia, jota sinun on vältettävä kommentteja käytettäessä, on selittää, mitä koodi tekee.
Tässä esimerkki huonosta kommentista:
Tämä on huono kommentti, koska se kertoo minulle ilmeisen. Se kertoo minulle, että seuraava rivi tulee painamaan "Aurinko laskee lännessä". Nyt tämän kommentin ongelmana on, että paitsi että se on monisanainen ja toistuva, jos tulet tänne ja vaihdat lännestä itään, tämä kommentti vanhenee. Joten joka kerta kun päivitämme koodimme, meidän on palattava ja muutettava vastaavaa kommenttia.
Lyhyesti sanottuna, käytä kommenttejasi vastataksesi miten ja miksi sen sijaan, että mitä.
Tässä esimerkki hyvästä kommentista:
Ensimmäisessä kommentissa muistutan itseäni, että minun on päivitettävä tämä tuloarvo ennen ohjelman viimeistelyä ja toinen arvo on kertoa muille koodiani lukeville kehittäjille, että kaikkia virheitä ei käsitellä tässä ohjelmassa.
Lopuksi, sinun tulee välttää tarpeettomia kommentteja ja kommenttien pitäisi lisätä koodiasi jonkin verran arvoa.
Paketoida!
Poikkeukset ja kommentit ovat kaksi ohjelmoinnin näkökohtaa, jotka usein jätetään huomiotta ja niiden merkitys on yleensä aliarvioitu.
Ohjelman kaatuminen on melkein yhtä paha asia kuin koodin kommentoimatta jättäminen tarvittaessa. Seuraava luento keskittyy luokkiin ja rakentajiin.
Jätä vastaus