Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Assertioiden Käyttö Pythonissa: Virheenkorjaus ja Koodin Eheyden Varmistaminen | Mastering Error Handling in Python
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Pythonin Rakenteellinen Ohjelmointi

bookAssertioiden Käyttö Pythonissa: Virheenkorjaus ja Koodin Eheyden Varmistaminen

Pythonissa assert-lause on sisäänrakennettu ominaisuus, jonka tarkoituksena on varmistaa, että tietyt ehdot ovat totta koodissasi. Se toimii järkevyyden tarkistuksena, varmistaen että tietyt edellytykset täyttyvät ohjelman suorituksen tietyissä kohdissa.

Assert-lauseen syntaksi on seuraava:

assert condition, message

Pythonissa väitteet toteutetaan assert-lauseella. Väite tarkistaa ehdon, ja jos ehto arvioituu False-arvoksi, se nostaa AssertionError-poikkeuksen valinnaisella virheilmoituksella.

12345
def calculate_average(grades): assert len(grades) > 0, "List of grades cannot be empty" return sum(grades) / len(grades) calculate_average([]) # Throw an error
copy

Tässä esimerkissä funktio laskee arvosanojen keskiarvon, ja väite varmistaa, että arvosanalista ei ole tyhjä ennen keskiarvon laskemista. Jos arvosanat ovat tyhjiä, väite epäonnistuu, mikä estää nollalla jakamisen ja osoittaa selkeän virheen ohjelmalogiikassa.

Tässä on joitakin yleisesti käytettyjä väiteluokkia:

  • Arvo-väitteet: Näitä väitteitä käytetään usein virheenkorjauksessa ja testauksessa tarkistamaan, että ohjelmassa käytetyt arvot täyttävät odotetut kriteerit. Esimerkiksi voit käyttää väitteitä kuten assert x >= 18 tai kuten aiemmin esitetty, assert len(grades) > 0;

  • Tyyppi-väitteet: Tyyppiväitteet ovat erityisen hyödyllisiä dynaamisesti tyypitetyissä kielissä kuten Pythonissa, joissa muuttujan tyyppi voi muuttua. Esimerkiksi väite isinstance(x, int) varmistaa, että x on kokonaisluku;

  • Kokoelma-väitteet: Näitä väitteitä käytetään tarkistamaan, sisältääkö kokoelma (kuten lista tai sanakirja) tiettyjä alkioita tai täyttääkö se tietyt ehdot. Esimerkkejä ovat assert item in my_list tai assert key in my_dict;

  • Poikkeusväitteet: Näitä käytetään pääasiassa yksikkötestauksessa (johon palaamme viimeisessä osiossa) varmistamaan, että koodi käsittelee poikkeukset oikein. Esimerkiksi assert_raises(ValueError, int, 'abc') tarkistaa, että merkkijonon 'abc' muuntaminen kokonaisluvuksi nostaa ValueError-poikkeuksen. Samoin assert_raises(ExceptionType, my_function, arg1, arg2) varmistaa, että my_functionin kutsuminen arg1:llä ja arg2:lla nostaa ExceptionType-tyyppisen poikkeuksen.

Tehtävä

Swipe to start coding

Lisää assert-lauseita esimerkkiprojektiin, joka hallinnoi käyttäjätietoja varmistaen, että käyttäjätiedot täyttävät tietyt kriteerit.

  1. Tarkista, ettei user_id ole jo users-sanakirjassa, jotta vältetään duplikaatit;
  2. Varmista, että user_id on kokonaisluku, jotta käyttäjätunnusten tyyppi pysyy yhdenmukaisena;
  3. Vahvista, että user_info on sanakirja, jotta vältetään tietotyyppivirheet.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 4
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

bookAssertioiden Käyttö Pythonissa: Virheenkorjaus ja Koodin Eheyden Varmistaminen

Pyyhkäise näyttääksesi valikon

Pythonissa assert-lause on sisäänrakennettu ominaisuus, jonka tarkoituksena on varmistaa, että tietyt ehdot ovat totta koodissasi. Se toimii järkevyyden tarkistuksena, varmistaen että tietyt edellytykset täyttyvät ohjelman suorituksen tietyissä kohdissa.

Assert-lauseen syntaksi on seuraava:

assert condition, message

Pythonissa väitteet toteutetaan assert-lauseella. Väite tarkistaa ehdon, ja jos ehto arvioituu False-arvoksi, se nostaa AssertionError-poikkeuksen valinnaisella virheilmoituksella.

12345
def calculate_average(grades): assert len(grades) > 0, "List of grades cannot be empty" return sum(grades) / len(grades) calculate_average([]) # Throw an error
copy

Tässä esimerkissä funktio laskee arvosanojen keskiarvon, ja väite varmistaa, että arvosanalista ei ole tyhjä ennen keskiarvon laskemista. Jos arvosanat ovat tyhjiä, väite epäonnistuu, mikä estää nollalla jakamisen ja osoittaa selkeän virheen ohjelmalogiikassa.

Tässä on joitakin yleisesti käytettyjä väiteluokkia:

  • Arvo-väitteet: Näitä väitteitä käytetään usein virheenkorjauksessa ja testauksessa tarkistamaan, että ohjelmassa käytetyt arvot täyttävät odotetut kriteerit. Esimerkiksi voit käyttää väitteitä kuten assert x >= 18 tai kuten aiemmin esitetty, assert len(grades) > 0;

  • Tyyppi-väitteet: Tyyppiväitteet ovat erityisen hyödyllisiä dynaamisesti tyypitetyissä kielissä kuten Pythonissa, joissa muuttujan tyyppi voi muuttua. Esimerkiksi väite isinstance(x, int) varmistaa, että x on kokonaisluku;

  • Kokoelma-väitteet: Näitä väitteitä käytetään tarkistamaan, sisältääkö kokoelma (kuten lista tai sanakirja) tiettyjä alkioita tai täyttääkö se tietyt ehdot. Esimerkkejä ovat assert item in my_list tai assert key in my_dict;

  • Poikkeusväitteet: Näitä käytetään pääasiassa yksikkötestauksessa (johon palaamme viimeisessä osiossa) varmistamaan, että koodi käsittelee poikkeukset oikein. Esimerkiksi assert_raises(ValueError, int, 'abc') tarkistaa, että merkkijonon 'abc' muuntaminen kokonaisluvuksi nostaa ValueError-poikkeuksen. Samoin assert_raises(ExceptionType, my_function, arg1, arg2) varmistaa, että my_functionin kutsuminen arg1:llä ja arg2:lla nostaa ExceptionType-tyyppisen poikkeuksen.

Tehtävä

Swipe to start coding

Lisää assert-lauseita esimerkkiprojektiin, joka hallinnoi käyttäjätietoja varmistaen, että käyttäjätiedot täyttävät tietyt kriteerit.

  1. Tarkista, ettei user_id ole jo users-sanakirjassa, jotta vältetään duplikaatit;
  2. Varmista, että user_id on kokonaisluku, jotta käyttäjätunnusten tyyppi pysyy yhdenmukaisena;
  3. Vahvista, että user_info on sanakirja, jotta vältetään tietotyyppivirheet.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 4
single

single

some-alt