⊗pyPmExcCt 75 of 129 menu

Erindite püüdmine Pythonis

Pythonis on võrreldes teiste programmeerimiskeeltega väga palju olukordi, mis põhjustavad erindeid.

Vaatame neid lähemalt. Olgu meil järgmine list:

lst = [1, 2, 3]

Pöördume listi olematu elemendi poole:

print(lts[4])

Pärast koodi käivitamist kuvatakse viga (erind):

IndexError: list index out of range

Kui me soovime jätkata tööd ilma erindit väljastamata, tuleb see püüda kasutades konstruktsiooni try-except. Sellel on järgmine süntaks:

try: # kood, mis põhjustab erindi except: # vea töötlemine

Plokis try tuleks paigutada kood, mis võib sisaldada erindit. Kui selle koodi käivitamisel tekib erind, siis koodi täitmine ei peatu, vaid läheb üle ploki except koodi. Selles plokis tuleks kirjutada sõnum, mis kirjeldab võimalikult täpselt tekkinud vea olemust.

Kui ploki try täitmisel ei esine ühtki erindit, siis kasulik kood lihtsalt täidetakse, aga kood plokist except - ei täideta.

Püüdkem nüüd meie erind, mis tekib olematu listi elemendi poole pöördumisel. Selleks asetame plokki try koodi potentsiaalse veaga. Ja plokis except määrame konsooli väljastamise sõnumi 'error: elem is not exist':

lst = [1, 2, 3] try: print(lst[4]) except: print('error: elem is not exist')

Pärast koodi täitmist kuvatakse:

'error: elem is not exist'

Pärast konstruktsiooni try-except uurimist peaks teie kirjutatud koodi stiil muutuma. Nüüd tuleks kõik kohad, kus võib tekkida erind, mähkida try plokki, ja plokis except kirjutada reaktsioon sellele erindile.

Küsige kasutajalt kaks numbrit. Jagage üks teisega. Püüdke erind, mis tekib nulliga jagamisel.

Küsige kasutajalt number. Leidke selle arvu ruutjuur. Püüdke erind, mis tekib negatiivsest arvust juure eraldamisel.

Antud on list. Küsige kasutajalt täisarv. Saage listi element, mille numbri kasutaja sisestas. Püüdke erind, mis tekib, kui kasutaja sisestas numbri väljaspool listi vahemikku.

Antud on järgmine kood:

num = '5' res = num + 2 print(res)

Mis selle koodiga on valesti? Parandage selle puudused.

Antud on järgmine kood:

lst = [1, 2, 3, 4] def getElem(iter): print(iter[4]) getElem(lst)

Mis selle koodiga on valesti? Parandage selle puudused.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu