Assertioiden 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.
12345def calculate_average(grades): assert len(grades) > 0, "List of grades cannot be empty" return sum(grades) / len(grades) calculate_average([]) # Throw an error
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 >= 18tai 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_listtaiassert 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. Samoinassert_raises(ExceptionType, my_function, arg1, arg2)varmistaa, että my_functionin kutsuminen arg1:llä ja arg2:lla nostaa ExceptionType-tyyppisen poikkeuksen.
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.
- Tarkista, ettei
user_idole jousers-sanakirjassa, jotta vältetään duplikaatit; - Varmista, että
user_idon kokonaisluku, jotta käyttäjätunnusten tyyppi pysyy yhdenmukaisena; - Vahvista, että
user_infoon sanakirja, jotta vältetään tietotyyppivirheet.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 3.13
Assertioiden 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.
12345def calculate_average(grades): assert len(grades) > 0, "List of grades cannot be empty" return sum(grades) / len(grades) calculate_average([]) # Throw an error
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 >= 18tai 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_listtaiassert 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. Samoinassert_raises(ExceptionType, my_function, arg1, arg2)varmistaa, että my_functionin kutsuminen arg1:llä ja arg2:lla nostaa ExceptionType-tyyppisen poikkeuksen.
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.
- Tarkista, ettei
user_idole jousers-sanakirjassa, jotta vältetään duplikaatit; - Varmista, että
user_idon kokonaisluku, jotta käyttäjätunnusten tyyppi pysyy yhdenmukaisena; - Vahvista, että
user_infoon sanakirja, jotta vältetään tietotyyppivirheet.
Ratkaisu
Kiitos palautteestasi!
single