logo

Python Print poikkeus

Poikkeus on odottamaton tapahtuma, joka tapahtuu ohjelman suorituksen aikana. Se tunnetaan myös ajonaikaisena virheenä. Kun tämä virhe tapahtuu, Python luo poikkeuksen suorituksen aikana ja se voidaan käsitellä, mikä estää ohjelmaasi keskeytyksestä. Tässä artikkelissa keskitymme 'Kuinka voimme tulostaa poikkeuksen Pythonissa?'

Mikä on poikkeus Pythonissa?

Sisään Python , Poikkeus on eräänlainen ohjelman virhe. Virhettä kutsutaan 'poikkeukseksi', kun ohjelma on syntaktisesti oikein, mutta sitä suoritettaessa tapahtuu virhe.



Esimerkki : Esimerkissä yritämme jakaa luvun nollalla, jotta se antaa ajonaikaisen virheen.

Python 3








num1>=> 5> num2>=> 0> print>(num1>/> num2)>

>

>

Lähtö

ekta kapoor näyttelijä
Traceback (most recent call last):  File 'Solution.py', line 5, in   print(num1 / num2)   ZeroDivisionError  : division by zero>

Tämä ohjelma on syntaktisesti oikein . Ainoa ongelma tässä johtuu operaatiossa käytetyistä numeroista. Koska emme voi jakaa mitään lukua nollalla, se antaa virheen. Tämä on siis esimerkki 'poikkeuksesta'.

Miltä poikkeukset näyttävät?

Yllä olevassa ohjelmassa, kun suoritimme sen, saimme poikkeuksen. Ilmoitettu virhe osoitti rivin, jolla virhe tapahtui, tarkan rivin ja virhetyypin.

Näytettyä virhetyyppiä kutsutaan 'poikkeukseksi'. Poikkeusten kautta saamme tietää ilmenneestä ongelmasta. Poikkeus yllä olevassa ohjelmassa on ZeroDivisionError: jako nollalla .

Esimerkki : Tässä muuttujan var1 määrityksen tekee an määrittelemätön muuttuja , var2.

Python 3




var1>=> var2>

>

>

Lähtö

Traceback (most recent call last):  File 'Solution.py', line 2, in   var1 = var2 NameError: name 'var2' is not defined>

Yllä voimme nähdä poikkeuksen muodossa NameError: nimeä 'var2' ei ole määritetty .

Poikkeuskäsittely Pythonissa

Poikkeukset voivat toisinaan olla hyvinkin vaivautuneita. Tässä tulee esiin poikkeuskäsittelyn käsite. Poikkeuskäsittelyn avulla voimme helposti käsitellä poikkeuksia käyttäjän puolesta sen sijaan, että heittäisimme virheitä käyttäjälle.

Esimerkki: Tässä ohjelmassa syöte otetaan tyyppiä 'int'. Mutta jos syötämme siihen merkin, se antaa ArvoError-ilmoituksen. Tämä voi hämmentää käyttäjää monta kertaa. Tässä teemme poikkeuskäsittelyn. Sen sijaan, että heittäisimme arvovirheen ja hämmennämme käyttäjää, näytämme lausunnon, joka kehottaa käyttäjää yrittämään uudelleen, ja annamme käyttäjälle mahdollisuuden yrittää syöttää numerot uudelleen.

Python 3




num1>=> int>(>input>(>'Enter num1: '>))> num2>=> int>(>input>(>'Enter num2: '>))> answer>=> f>'{num1} / {num2} = {num1 / num2}'> print>(answer)>

>

>

Lähtö

Enter num1: 1 Enter num2: b Traceback (most recent call last):  File 'D:/PycharmProjects/pythonProject2/main.py', line 15, in   num2 = int(input('Enter num2: ')) ValueError: invalid literal for int() with base 10: 'b'>

Käytä try, paitsi ja muuta

Tässä koodissa ajetaan while-silmukka, koska haluamme antaa käyttäjän yrittää, kunnes syöte on annettu oikealla tavalla. Olemme käyttäneet try-lausetta. Try-lause tarkistaa virheet kyseisen lauseen riveiltä.

Jos havaitaan poikkeus, se hyppää 'paitsi' -lauseeseen ja tulostaa antamamme virheilmoituksen. Olemme kirjoittaneet kaksi paitsi lauseketta, joista toisessa on ValueError ja toisessa ZeroDivisionError. Jokainen näistä lausekkeista käsittelee vastaavia poikkeuksia ja tulostaa vastaavat viestit.

Madhuri sanoi, tule

Lopuksi olemme kirjoittaneet muun lausekkeen. Jos virhettä ei tapahdu, muu-lohko suoritetaan. Muussa lohkossa tulostetaan jaon osamäärä ja puretaan silmukasta.

Python 3




while> True>:> >try>:> >num1>=> int>(>input>(>'Enter num1: '>))> >num2>=> int>(>input>(>'Enter num2: '>))> >answer>=> f>'{num1} / {num2} = {num1 / num2}'> >except> ValueError as e:> >print>(>'Try putting an integer value. Error Occured:'>, e)> >except> ZeroDivisionError as ex:> >print>(>'Division by zero is invalid! Error Occured:'>, ex)> >else>:> >print>(answer)> >break>

>

>

Lähtö:

Kuvakaappaus-2023-10-16-12-36-50

Tulostuspoikkeukset

Nyt kun olemme nähneet mitä poikkeukset tarkalleen ovat, miltä ne näyttävät ja miten niitä käsitellään, tarkastelemme nyt niiden tulostamista.

Käytämme poikkeusten tulostamiseen 'kuten' Pythonin avainsana.

Olemme käyttäneet samaa esimerkkiä, jota käytimme aiemmin. Olemme käyttäneet 'as'-avainsanaa ja ilmoittaneet muuttujan 've' arvolle 'ValueError' ja 'zde' 'ZeroDivisionErrorille'. Sitten, jos kohtaamme poikkeuksia, olemme kirjoittaneet koodin poikkeuksen tulostamiseksi. Mutta silti, emme voi nähdä saamamme poikkeustyyppiä.

Python 3




e r malliesimerkkejä

while> True>:> >try>:> >num1>=> int>(>input>(>'Enter num1: '>))> >num2>=> int>(>input>(>'Enter num2: '>))> >answer>=> f>'{num1} / {num2} = {num1 / num2}'> >except> ValueError as ve:> >print>(ve)> >except> ZeroDivisionError as zde:> >print>(zde)> >else>:> >print>(answer)> >break>

>

>

Lähtö:

Enter num1: a invalid literal for int() with base 10: 'a' Enter num1: 0 Enter num2: 0 division by zero Enter num1: 16 Enter num2: 4 16 / 4 = 4.0>

Tulostuspoikkeustyyppi

Poikkeustyypin näkemiseksi voimme käyttää type()-funktiota.

Tässä olemme käyttäneet type()-funktiota selvittääksemme poikkeuksen tyypin, jonka olemme kohdanneet koodia suoritettaessa.

Python 3




while> True>:> >try>:> >num1>=> int>(>input>(>'Enter num1: '>))> >num2>=> int>(>input>(>'Enter num2: '>))> >answer>=> f>'{num1} / {num2} = {num1 / num2}'> >except> ValueError as ve:> >print>(>type>(ve), ve)> >except> ZeroDivisionError as zde:> >print>(>type>(zde), zde)> >else>:> >print>(answer)> >break>

>

>

Lähtö

Enter num1: a  invalid literal for int() with base 10: 'a' Enter num1: 1 Enter num2: 0  division by zero Enter num1: 4 Enter num2: 2 4 / 2 = 2.0>