Python Kokeile paitsi: Vaiheittaiset esimerkit

Ohjelmoijana saatat kohdata tilanteita, joissa koodisi saattaa joutua virheisiin tai poikkeuksiin, joten on tärkeää ymmärtää, kuinka käsitellä koodissasi olevia erilaisia ​​virheitä. Virheiden käsittely on tärkeä osa koodaussykliä. Yksi yleinen tapa käsitellä virheitä Pythonissa on käyttää try-except-tekniikkaa.

Try-except-tekniikka koostuu try-lohkosta ja paitsi-lohkosta. Try-lohko sisältää koodin, joka saattaa aiheuttaa virheen tai poikkeuksen, ja poikkeuslohko sisältää koodin näiden virheiden tai poikkeuksien käsittelemiseksi.

Python Kokeile paitsi: Vaiheittaiset esimerkit

Kun koodisi toimii ilman ongelmia try-lohkossa, poikkeuslohko ohitetaan. Jos try-lohkossa kuitenkin tapahtuu virhe tai poikkeus, poikkeuslohkoon kirjoittamasi koodi suoritetaan ongelman korjaamiseksi.

Tässä artikkelissa keskustelemme Pythonin try-expect-lohkosta, erilaisista virhetyypeistä ja poikkeuksista, joita saatat kohdata koodia kirjoitettaessa, ja kuinka voit käsitellä niitä try-expect-lauseiden avulla.

Mennään asiaan!

Sisällysluettelo

Mitkä ovat Pythonin virhetyypit?

Pythonissa virheet voidaan karkeasti luokitella kahteen päätyyppiin:

1. Syntaksivirheet : Näitä kutsutaan myös jäsennysvirheiksi, jotka johtuvat virheellisestä kielioppikoodista. Python-tulkki havaitsee syntaksivirheet ja pysäyttää ohjelman suorittamisen.

Seuraava on an

print("Hello, world!"

Tässä esimerkissä sulkeva sulku puuttuu, joten Python ei ymmärrä tätä käskyä ja siksi kyseessä on syntaksivirhe.

Python Kokeile paitsi: Vaiheittaiset esimerkit

Poikkeukset : Poikkeuksia esiintyy, kun jokin menee pieleen ohjelman suorituksen aikana, vaikka koodi olisi syntaktisesti oikein. Nämä voivat sisältää loogisia virheitä tai ajonaikaisia ​​virheitä, kuten virheellisiä syötteitä tai nollalla jakamista.

Seuraava funktio on esimerkki poikkeuksesta Pythonissa:

print(5 / 0)

Tämä koodirivi aiheuttaa ZeroDivisionError-poikkeuksen, joka tapahtuu, kun yrität jakaa luvun nollalla.

Python Kokeile paitsi: Vaiheittaiset esimerkit

Yllä olevasta kuvasta näet, että poikkeus tapahtui, kun jaettiin 5 nollalla.

Nyt kun ymmärrät, mitä poikkeuksia Pythonissa on, katsomme, kuinka voimme käsitellä poikkeuksia Pythonissa Try-Except-käskyllä. Katsotaanpa seuraavassa osiossa Pythonin Try and Except -lohkojen syntaksia.

Mikä on Try and Except Blockin syntaksi?

Funktion syntaksi määrittää, kuinka tätä funktiota tulee käyttää koodissasi, mukaan lukien mitä argumentteja se ottaa ja mitä se palauttaa.

Olemme listanneet alla try-lauseen syntaksin ja paitsi lohkot, else- lauseen ja lopuksi lohkojen syntaksin.

1. Try-lauseen syntaksi

Try - lauseessa voit testata koodilohkon virheitä. Kun kirjoitat koodia try -lohkoon, Python suorittaa sen normaalina osana ohjelmaasi.

Jos haluat käyttää try- lausetta, liitä koodisi try- lohkoon:

try: # Your code here

2. Except-lauseen syntaksi

Export - lause käsittelee virheet, joita saattaa ilmetä try- lohkon suorittamisen aikana . Voit määrittää poikkeuksen tyypin, jonka haluat kiinnittää, tai käyttää yleistä paitsi -lausetta kaikkien poikkeuksien käsittelemiseen.

Seuraava syntaksi näyttää tietyn poikkeustyypin:

try: # Your code here except ValueError: # Handle ValueError exception

Jos haluat käsitellä poikkeusluokkia yleisesti tai useita poikkeuksia, voit käyttää alla olevaa syntaksia:

try: # Your code here except Exception: # Handle any exception

3. Else-lauseen/lohkon syntaksi

Muu - lause antaa sinun suorittaa koodilohkon, kun try- lohkossa ei ole virheitä.

Jos haluat käyttää else -lausetta, voit sijoittaa sen paitsi- lohkon jälkeen alla olevan kuvan mukaisesti:

try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors

4. Lopuksi lohkon syntaksi

Lopullinen lohko antaa sinun suorittaa koodia kokeilun tuloksesta riippumatta . Tästä voi olla hyötyä toimissa, jotka haluat suorittaa riippumatta siitä, onko poikkeus tehty vai ei.

Jos haluat käyttää lopuksi lohkoa, voit sijoittaa sen else- lohkon jälkeen:

try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors finally: # Code to execute regardless of the result of the try and except blocks

Nähdäksesi yllä olevan syntaksin toiminnassa, katsomme esimerkkiä poikkeusten käsittelystä Pythonin try-except-lohkolla.

Poikkeusten käsittely Pythonissa Try-Exceptillä

Kun virhe tapahtuu, Python pysähtyy normaalisti ja luo virheilmoituksen. Voit käsitellä useita poikkeuksia käyttämällä try and paitsi -estoa.

Alla olevassa esimerkissä käsittelemme nollalla jakamista, joka syntyi aiemmin, kun jaettiin 5 nollalla.

try: print(5 / 0) except ZeroDivisionError: print("You can't divide by zero!")

Tässä koodissa tapahtuu poikkeus, mutta ohjelma jatkaa toimintaansa ja tulostaa tekstin "Et voi jakaa nollalla!" sen sijaan, että lopettaisit virheen.

Python Kokeile paitsi: Vaiheittaiset esimerkit

Kokeile ja paitsi -lohkoja käyttämällä voit hallita ohjelman kulkua. Käsittelemällä tiettyjä poikkeuksia voit antaa hyödyllistä palautetta käyttäjälle ja pitää ohjelman käynnissä virheen ilmaantuessa.

Yllä olevassa esimerkissä voit nähdä, että käytimme sisäänrakennettua ZeroDivisionError-poikkeusta tapauksen käsittelyyn. Vastaavasti tässä on myös muita sisäänrakennettuja poikkeuksia.

Näiden poikkeustyyppien tuntemus auttaa sinua päättämään, mitä odotuksia käytetään, kun kohtaat virheen Python-koodissa, joten katsotaanpa joitain poikkeuksia seuraavassa osiossa.

Mitkä ovat sisäänrakennettujen poikkeusten tyypit?

Pythonissa poikkeukset ovat BaseException-luokasta johdetun luokan esiintymiä. Kun virheitä havaitaan, Python tekee poikkeuksen. On olemassa useita sisäänrakennettuja poikkeuksia, joita todennäköisesti kohtaat kirjoittaessasi ohjelmia Pythonissa.

Katsotaanpa joitain yleisimmistä:

  1. ZeroDivisionError: Tämä tapahtuu, kun yrität jakaa luvun nollalla.

  2. NameError: Tämä tulee esiin, kun yrität käyttää muuttujaa tai funktiota, jota ei ole määritetty.

  3. ValueError : Tapahtuu, kun välität oikean tyyppisen argumentin, jolla on virheellinen arvo.

  4. TypeError : Tämä tapahtuu, kun välität väärän tietotyypin argumentin.

  5. FileNotFoundError : Tapahtuu, kun yrität avata tai käyttää tiedostoa, jota ei ole olemassa.

  6. ImportError : Ilmestyy, kun yrität tuoda moduulia tai pakettia, jota ei ole olemassa tai jota ei löydy.

Muita olennaisia ​​poikkeuksia ovat:

  1. OverflowError: Tämä virhe ilmenee, kun laskentatulos on liian suuri esitettäväksi.

  2. FloatingPointError: Tämä nostetaan esiin, kun liukulukutoiminto epäonnistuu.

  3. IndexError: Tapahtuu, kun yrität käyttää indeksiä, joka on sekvenssin alueen ulkopuolella (esim. luettelo tai monikko).

  4. KeyError: Ilmenee, kun yrität käyttää avainta, jota ei ole sanakirjassa.

  5. EOFEror: Ilmestyy, kun Python kohtaa End Of File (EOF) -ilmoituksen lukiessaan syötettä, yleensä read()-kutsusta.

  6. ArithmeticError: Superluokka aritmeettisille poikkeuksille, kuten ZeroDivisionError, OverflowError ja FloatingPointError.

Joskus saattaa olla tarpeen käyttää käyttäjän määrittämiä poikkeuksia, kuten pass- lausetta lohkossa, jossa poikkeusta odotetaan. Tämä tulee tehdä harkitusti, koska se saattaa tukahduttaa muut poikkeukset.

Olemme toimittaneet sinulle yllä olevan luettelon yleisistä poikkeusvirheistä, jotta voit käyttää sitä ohjelmina.

Huomaa, että useimmat poikkeukset voidaan kiinnittää ja käsitellä, mutta on huolehdittava viimeisimmän kutsun käsittelemisestä, jotta vältetään muiden poikkeustapausten sisäkkäinen käsittely.

Seuraavassa osiossa tarkastelemme Pythonin try-except-lohkoa. Mennään asiaan!

5 käyttötapauksia Try-Except Block

Try Except -lohko on yksi yleisesti käytetyistä virheiden käsittelytekniikoista. Seuraavassa on joitain Pythonin Try Except -lohkon käyttötapauksia:

1. Tiedostojen käsittely Kokeile paitsi

Kun käsittelet tiedostoja, on aina mahdollista, että tiedostoa ei ole olemassa tai se ei ole paikassa, josta komentosarjasi yrittää käyttää sitä.

Seuraava koodi aiheuttaa poikkeuksen, kun yritämme avata tiedoston, jota ei ole olemassa.

try: with open('file.txt', 'r') as file: print(file.read()) except FileNotFoundError: print('Sorry, this file does not exist.')

Tässä koodissa yritämme avata ja lukea tiedoston nimeltä "file.txt". Jos tiedosto.txt-tiedostoa ei ole olemassa, tapahtuu poikkeus, mutta ohjelman pysäyttämisen virheen sijaan se tulostaa "Valitettavasti tätä tiedostoa ei ole olemassa".

Python Kokeile paitsi: Vaiheittaiset esimerkit

2. Käyttäjän syötteen käsitteleminen Try Exceptillä

Käyttäjän syöttö on toinen alue, jolla poikkeuksia esiintyy usein. Käyttäjät voivat antaa tietoja odottamattomassa muodossa tai syöttää hyväksytyn alueen ulkopuolella.

Seuraava esimerkki näyttää kuinka käsitellä käyttäjän syötettä try-except-lohkolla:

try: age = int(input("Enter your age: ")) except ValueError: print("That's not a valid age. Please enter a number.")

Tässä koodissa pyydämme käyttäjää syöttämään ikänsä. Jos he syöttävät jotain, jota ei voida muuntaa kokonaisluvuksi (kuten sana tai kirjain), tapahtuu poikkeus, mutta sen sijaan, että ohjelma kaatuisi, se tulostaa "Se ei ole kelvollinen ikä". Anna numero.'

Python Kokeile paitsi: Vaiheittaiset esimerkit

3. Olemattomien sanakirjaavainten käyttäminen

Pythonissa sanakirja on muuttuva, järjestämätön , jossa jokaisen avaimen on oltava yksilöllinen.

Kun yrität käyttää avainta, jota ei ole sanakirjassa, Python herättää KeyError-ilmoituksen. Voit käyttää try and paitsi -toimintoa käsitelläksesi tämän poikkeuksen alla olevan esimerkin mukaisesti:

dictionary = {"key1": "value1", "key2": "value2"} try: print(dictionary["key3"]) except KeyError: print("The key does not exist in the dictionary.")

Tässä koodissa yrität tulostaa avain3:n arvon sanakirjasta. Jos 'avain3' ei ole sanakirjassa, tapahtuu poikkeus, mutta sen sijaan, että ohjelma pysähtyisi virheen vuoksi, se tulostaa 'Avainta ei ole sanakirjassa'.

Python Kokeile paitsi: Vaiheittaiset esimerkit

4. Merkkijonon muuntaminen kokonaisluvuksi

Saattaa olla aikoja, jolloin haluat muuntaa a kokonaisluvuksi. Mutta jos merkkijono ei edusta kelvollista kokonaislukua, Python nostaa ValueErrorin.

Voit käyttää try and paitsi -toimintoa tämän tapauksen käsittelemiseen:

try: num = int("hello") except ValueError: print("That string can't be converted to integer.")

Tässä tapauksessa "hello" ei voi muuntaa kokonaisluvuksi, joten Python herättää ValueErrorin ja tulostaa "Tätä merkkijonoa ei voi muuntaa kokonaisluvuksi."

Python Kokeile paitsi: Vaiheittaiset esimerkit

5. Moduulin tuonti

Kun , on mahdollista, että moduulia ei ole olemassa tai sitä ei ole asennettu. Python tuo esiin ImportError-ilmoituksen tällaisissa tapauksissa.

Voit käsitellä tätä tapausta käyttämällä seuraavaa koodia:

try: import some_module except ImportError: print("The module 'some_module' is not installed.")

Yllä olevassa esimerkissä, jos "some_module" ei ole asennettu tai sitä ei ole olemassa, Python herättää ImportError-ilmoituksen ja tulostaa "Moduulia "some_module" ei ole asennettu.

Python Kokeile paitsi: Vaiheittaiset esimerkit

Saat lisätietoja koodin kirjoittamisesta Pythonissa ja odotusten käsittelemisestä katsomalla seuraavaa videota:

Seuraavaksi tarkastelemme joitain parhaita käytäntöjä poikkeusten käsittelemiseksi. Sukellaan siihen!

Poikkeuskäsittelyn parhaat käytännöt

Tässä osiossa olemme listanneet joitain parhaita käytäntöjä poikkeuksien käsittelemiseksi Try Except -lohkolla. Joitakin parhaita käytäntöjä poikkeusten käsittelyyn ovat:

1. Ole täsmällinen poikkeuksin

Kun kirjoitat koodia, poikkeuksien kiinnittäminen mahdollisimman tarkasti on erittäin tärkeää. Tämä tarkoittaa, että sen sijaan, että nappaisit vain yleisen poikkeuksen nimen, sinun tulee ottaa kiinni todellisesta odottamastasi poikkeuksesta.

Tällä tavalla tiedät tarkalleen, millainen virhe tapahtui, ja pystyt käsittelemään sen asianmukaisesti.

2. Älä tukahduta poikkeuksia

Kun käsittelet poikkeuksia, saatat tuntea houkutusta vain saada se kiinni poikkeuskäsittelijällä ja olla tekemättä sille mitään. Tämä on yleensä huono idea.

Jos virhe tapahtuu, se johtuu yleensä siitä, että jotain on korjattava. Jos poistat poikkeusluokan, virhe voi jäädä huomaamatta ja aiheuttaa ongelmia myöhemmin.

3. Käytä Lopuksi puhdistuskoodia varten

Joskus sinulla on jokin koodi, joka sinun on suoritettava riippumatta siitä, tapahtuiko virhe vai ei. Tämä voi olla esimerkiksi tiedoston sulkeminen tai joidenkin resurssien vapauttaminen.

Näissä tapauksissa voit käyttää lopullista lohkoa. Lopullisen lohkon sisällä oleva koodi toimii riippumatta siitä, mitä, joten se on hyvä paikka laittaa puhdistuskoodisi.

try: # Some code here finally: # This code will run no matter what

4. Nosta poikkeuksia tarvittaessa

Saattaa olla tilanteita, joissa sinun on kerrottava koodisi käyttäjälle, että jokin meni pieleen.

Näissä tapauksissa voit tehdä poikkeuksen. Tämä lopettaa välittömästi koodisi suorittamisen ja ilmoittaa käyttäjälle virheestä.

if not valid_input: raise ValueError("Your input was not valid!")

Näiden parhaiden käytäntöjen ymmärtäminen ja käyttöönotto tekee koodistasi kestävämmän, helpommin viankorjattavan ja estää odottamattomat kaatumiset.

Lopulliset ajatukset

Pythonissa try and paitsi -toiminnon osaaminen auttaa todella, kun kirjoitat koodia ja kohtaat siinä poikkeuksia.

Niiden avulla ohjelmasi käsittelee virheitä sujuvasti sen sijaan, että se pysähtyisi äkillisesti. Se on tapa varmistaa, että koodisi kestää yllätyksiä ja jatkaa.

Lisäksi, kun käytät try and paitsi -toimintoa, se osoittaa, että todella ajattelet, mikä voisi mennä pieleen, ja valmistaudut siihen. Käytä siis aikaa näiden työkalujen oppimiseen – ne ovat erittäin hyödyllisiä, kun kirjoitat koodia Pythonissa!


Suhde- ja taajuustaulukot Excelissä

Suhde- ja taajuustaulukot Excelissä

Aioin sukeltaa Excelin taajuustaulukoihin sekä suhteellisiin taulukoihin. Selvitä, mitä ne ovat ja milloin niitä käytetään.

Kuinka asentaa DAX Studio & Tabular Editor LuckyTemplatesissa

Kuinka asentaa DAX Studio & Tabular Editor LuckyTemplatesissa

Opi lataamaan ja asentamaan DAX Studio ja Tabular Editor 3 ja miten ne määritetään käytettäväksi LuckyTemplatesissa ja Excelissä.

LuckyTemplates -muotokartan visualisointi tilaanalyysiin

LuckyTemplates -muotokartan visualisointi tilaanalyysiin

Tämä blogi sisältää Shape Map -visualisoinnin tilaanalyysiä varten LuckyTemplatesissa. Näytän sinulle, kuinka voit käyttää tätä visualisointia tehokkaasti sen ominaisuuksien ja elementtien kanssa.

LuckyTemplatesin talousraportointi: tulosten kohdentaminen malleihin jokaisella rivillä

LuckyTemplatesin talousraportointi: tulosten kohdentaminen malleihin jokaisella rivillä

Tässä opetusohjelmassa esittelen ainutlaatuisen idean talousraportoinnista, joka allokoi tulokset LuckyTemplatesin sisällä olevien taulukkopohjien ennalta määrittämiseen.

DAX-mittaukset LuckyTemplatesissa käyttämällä mittahaaroitusta

DAX-mittaukset LuckyTemplatesissa käyttämällä mittahaaroitusta

Luo DAX-suureita LuckyTemplatesissa käyttämällä olemassa olevia suureita tai kaavoja. Tätä kutsun mittahaaroitustekniikaksi.

Tehokkain toimintopuhelu LuckyTemplatesissa

Tehokkain toimintopuhelu LuckyTemplatesissa

Tässä blogissa tutustu LuckyTemplates-tietojoukkoon, tehokkaimpaan funktiokutsuun, joka tuo tuhansia M- ja DAX-funktioita sormiesi ulottuville.

Datamallinnustekniikat DAX-mittausten järjestämiseen

Datamallinnustekniikat DAX-mittausten järjestämiseen

Tämän päivän opetusohjelmassa jaan muutamia datamallinnustekniikoita DAX-mittausten järjestämiseksi paremmin tehokkaamman työnkulun aikaansaamiseksi.

LuckyTemplates Financial Dashboard: Täydelliset taulukon mukautusvinkit

LuckyTemplates Financial Dashboard: Täydelliset taulukon mukautusvinkit

LuckyTemplates on loistava työkalu talousraportointiin. Tässä on opetusohjelma räätälöityjen taulukoiden luomisesta LuckyTemplates-talouden hallintapaneelillesi.

Power Queryn kielivirran parhaat käytännöt

Power Queryn kielivirran parhaat käytännöt

Tässä opetusohjelmassa keskustellaan Power Query Language Flowsta ja siitä, kuinka se voi auttaa luomaan sujuvan ja tehokkaan dataraportin.

LuckyTemplates mukautetut kuvakkeet | PBI-visualisointitekniikka

LuckyTemplates mukautetut kuvakkeet | PBI-visualisointitekniikka

Keskustelen yhdestä suosikkitekniikoistani mukautettujen LuckyTemplates-kuvakkeiden ympärillä, joka käyttää mukautettuja kuvakkeita dynaamisella tavalla LuckyTemplates-visuaaleissa.