logo

Kā noteikt Valueerror izņēmumus Python

Python ir iebūvēti izņēmumi, kas tiek parādīti bieži sastopamu kļūdu gadījumā. Šie iepriekš noteiktie izņēmumi sniedz priekšrocības, jo varat izmantot Python bloku try-except, lai tos apstrādātu iepriekš. Piemēram, varat izmantot bloku try-except, lai pārvaldītu ValueError izņēmumu programmā Python. Šajā rakstā mēs redzēsim dažas metodes un iemeslus Valueerror izņēmumu parādīšanai un risināšanai Python.

Kas ir ValueError programmā Python?

Izņēmums ValueError bieži tiek minēts Python ja mainīgajam tiek piešķirta nederīga vērtība vai tā tiek nodota funkcijai tās izsaukšanas laikā. Tas bieži notiek arī secības datu tipu izpakošanas laikā, kā arī ar funkcijām, kad tiek izmantots atgriešanas priekšraksts.

Sintakse :



ValueError: could not convert string to float: 'techcodeview.com'>

Kāpēc Python rodas ValueError?

Daži izplatītākie ValueError rašanās iemesli ir šādi:

Nederīgs arguments

ValueError parasti rodas, ja Python funkcijai nododam nederīgu argumentu. Piemēram, Python funkcija float() ņem skaitli un pārvērš to peldošā vērtībā. Bet, ja mēs nododam virkni šai funkcijai, Python, protams, nevarēs pārvērst virkni pludiņā, un tādējādi tas novedīs pie ValueError.

Python3




a>=> 34> b>=> 'techcodeview.com'> #works normally> print>(>float>(a))> #leads to the valueerror> print>(>float>(b))>

>

>

Hangup (SIGHUP) Traceback (most recent call last):  File 'Solution.py', line 8, in   print(float(b)) ValueError: could not convert string to float: 'techcodeview.com'>

Nepareiza matemātikas moduļa izmantošana

Strādājot ar Python matemātikas moduli, ValueError izņēmums tiek parādīts diezgan daudz. Tas ir tāpēc, ka kāds var nebūt informēts par derīgajiem argumentiem konkrētai funkcijai. Piemēram, Math moduļa funkcija math.factorial() atgriež dotā skaitļa faktoriālu. Tomēr, ja kāds mēģina šai funkcijai nodot negatīvu vērtību, viņam noteikti tiks parādīta ValueError:

Python3




import> math> print>(math.factorial(>->3>))>

>

>

Hangup (SIGHUP) Traceback (most recent call last):  File 'Solution.py', line 3, in   print(math.factorial(-3)) ValueError: factorial() not defined for negative values>

Atkārtojama objekta izsaiņošana

Atkārtojamu Python objektu, piemēram, sarakstus, korešus un vārdnīcas, var cilpot. Izpakošana, kad iterējamās vērtības tiek piešķirtas atsevišķiem mainīgajiem, ir izplatīta darbība. Ja norādāt vairāk vai mazāk mainīgo, tiks parādīta kļūda, piemēram, ValueError. Piemēram, zemāk esošajā piemērā saraksts ar trim vienumiem tiek izsaiņots, izmantojot četrus mainīgos, kā rezultātā rodas ValueError.

Python3




my_list>=> [>'Geeks'>,>'for'>,>'Geeks'>]> a, b, c, d>=> my_list> print>(a)> print>(b)> print>(c)>

>

>

Hangup (SIGHUP) Traceback (most recent call last):  File 'Solution.py', line 2, in   a, b, c, d = my_list ValueError: not enough values to unpack (expected 4, got 3)>

Pieejas/iemesli, kā atrisināt Valueerror izņēmumus

Tālāk ir norādīti veidi, kā atrisināt Valueerror izņēmumus programmā Python

  • Izmantojot mēģinājumu, izņemot bloku
  • Labojiet kodu
  • Izmantojiet pareizo mainīgo skaitu

Izmantojot mēģinājumu, izņemot bloku

Tālāk kods mēģina pārveidot skaitlisku vērtību (a) un virkni, kas nav skaitliska (b) par pludiņiem, izmantojot funkciju 'float()'. Izmēģināšanas bloks tiek izmantots, lai uztvertu iespējamu ValueError kļūdu, kas var rasties virknes, kas nav skaitliska, konvertēšanas laikā. Ja rodas šāda kļūda, tiek izdrukāts skaidrs kļūdas ziņojums, kas norāda uz nespēju pārvērst virkni pludiņā.

Python3




a>=> 34> b>=> 'techcodeview.com'> try>:> ># works normally> >print>(>float>(a))> ># may lead to ValueError, so use try-except> >print>(>float>(b))> except> ValueError:> >print>(>'Error: Unable to convert the string to a float.'>)>

>

>

Izvade:

34.0 Error: Unable to convert the string to a float.>

Labojiet kodu

Zemāk kods aprēķina koeficientu 3, nepalielinot aValueError>. Ja nepieciešams apstrādāt negatīvas ievades gadījumu, pirms izsaukšanas varat pievienot pārbaudi, lai pārliecinātos, ka ievadītā informācija ir derīga.math.factorial>funkciju.

Python3




import> math> print>(math.factorial(>3>))>

>

>

Izvade:

6>

Izmantojiet pareizo mainīgo skaitu

Lai atrisinātu Valueerror izņēmumus izpakošanas sarakstā, izmantojiet pareizo mainīgo skaitu, lai izpakotu sarakstu. Ja sarakstā ir trīs elementi, jāizmanto trīs mainīgie. Šeit ir izlabotais kods:

Python3




my_list>=> [>'Geeks'>,>'for'>,>'Geeks'>]> a, b, c>=> my_list># Use three variables instead of four> print>(a)> print>(b)> print>(c)>

>

java burbuļu šķirošana

>

Izvade

Geeks for Geeks>

Secinājums

Noslēgumā jāsaka, ka ValueError izņēmumu atrisināšana programmā Python ietver rūpīgu ievades datu pārbaudi un saderības nodrošināšanu ar paredzēto formātu. Pareizu validācijas metožu izmantošana, piemēram, try-izņemot blokus un nosacījumu paziņojumus, var palīdzēt novērst un novērst iespējamās problēmas. Iebūvēto funkciju un bibliotēku izmantošana ievades parsēšanai un validācijai piešķir kodam papildu robustuma slāni.