Python Math Range Feil

Python Math Range Feil
Før vi kommer inn i Python Math Range -feilen, la oss se på Python Math -modulen. Matemodulen er en ofte brukt Python -modul tilgjengelig til enhver tid. For å bruke denne modulens matematiske funksjoner, bør du først importere den ved hjelp av importmatematikk. Det gir tilgang til funksjonalitetene til det underliggende C -biblioteket. Kvadratrotberegning, for eksempel import matematikk.SQRT (4). Hvis en verdi i en matematisk beregning overstiger den tillatte datatypen i Python, heves et unntak som kalles "OverflowerRor: Math Range Feil".

I dette innlegget vil vi se på vanskelighetene med "overflowror" -problemet. Maksimal grense for hver datatype er angitt i Python. Verdien må være innenfor datatypen før du utfører matematiske beregninger. Hvis verdien er for stor, vil ikke datatypen imøtekomme den. Python genererer en feil i dette scenariet, og bemerker at verdien overstiger den tillatte grensen. I dette tilfellet bør utvikleren iverksette passende tiltak som svar på interessen. Vi vil se på hvordan vi skal takle slike situasjoner i denne artikkelen. Vi går over alle de forskjellige løsningene på dette problemet. Python bruker operander når de utfører matematiske beregninger. Operandene er noen av Python -datatypene. De definerte datatypene kan lagres opp til sin maksimale grense i variabelen. Hvis applikasjonen prøver å lagre en verdi som overskrider datatypens maksimale grense, kan Python kaste en feil som erklærer at den tillatte grensen er overskredet. Vi vil se på forskjellige tilfeller som forårsaker matematikken

Eksempel 1:

Dette problemet kan gjenskapes ved hjelp av Exp Python Math Operation. Det maksimale antall datatyper som kan brukes er 709.78271. Python -programmet vil vise en feil hvis programmet simulerer en verdi som overskrider den tillatte grensen.

Importer matematikk
utgang = matematikk.EXP (1000)
Print (Output)

Ovennevnte økte feilen, som du kan se.

Eksempel 2:

Vi kan se i dette programmets kode at vi erklærer matemodulen, etter det, ved å bruke den til å generere eksponentielle tall som EXP (1000), der X er 1000 mens E er 2.7, og når vi prøver å beregne dette, gir det oss en verdi som et resultat som er dobbelt, og det kan ikke skrive ut resultatet. Som det kan sees i det følgende programmet, oppstår en overløpsfeil, noe som indikerer at verdien er utenfor rekkevidde fordi den gitte verdien er 1000 og utfallet er utenfor rekkevidde.

Print ("et Python -program som genererer overløpsfeilen")
Importer matematikk
trykk ("Her er eksponentiell verdi:")
trykk (matematikk.EXP (1000))

Som du kan se, forårsaket ovennevnte kode matematikkområdet feil.

Eksempel 3:

Uttrykket "resultat for stort" refererer ikke til antall tegn i desimalrepresentasjonen av tallet; Snarere betyr det at antallet som produseres av din eksponentielle funksjon er stort nok til å overskride hvilken type Python som bruker for å lagre flytende punktverdier internt. Flytere i Python er verken vilkårlig presisjon eller ubegrensede i størrelse. x = x ** 2 er altfor stor når jeg = 10. Enten bruk en alternativ type for dine flytende punktberegninger, for eksempel desimalmodul: D = desimal.Desimal (x ** 2), eller endre koden din slik at e ** (x) ikke strømmer over eller understrømning.

a = 2.0
for jeg i rekkevidde (50):
a = a ** 2
trykk (a)

Følgende er et eksempel på en overflowror.

Løsning 1:

Som tidligere nevnt, bør verdien ikke overgå den maksimale datatypens grense. Vanskeligheten kan løses ved å beregne eksponentiell verdi med mindre. Før eksponentiell operasjon utføres, brukes en IF -tilstand for å validere inngangsverdien. Innringeren vil motta riktig feilmelding hvis inngangsverdien er høyere enn 0. Koden nedenfor viser hvordan du bruker eksponentiell funksjon uten å forårsake en programfeil.

Importer matematikk
Num = 80
Hvis Num<50:
utgang = matematikk.exp (num)
Print (Output)
ellers:
Skriv ut ("Inngangsverdien overstiger den tillatte grensen.")

Ovennevnte kode utføres vellykket uten å forårsake feil, som vist nedenfor.

Løsning 2:

Hvis inngangsverdien er upålitelig, kan feilen håndteres ved hjelp av Try-unntakskonstruksjonen. Legg til den aktuelle koden for utførelse av programmet i prøveblokken. Hvis det oppstår en feil, gjenkjenner du den og velger et alternativt handlingsforløp. I denne metoden vil koden håndtere overløps unntaket. Koden nedenfor viser hvordan du bruker prøv og bortsett fra å håndtere en overløpsfeil i et Python -program.

Importer matematikk
prøve:
Resultat = matematikk.EXP (1000)
unntatt overflowror:
resultat = float ('inf')
trykk (resultat)

Nedenfor er resultatet.

Konklusjon:

En overløpsfeil skjer når den nåværende runtime -verdien hentet av Python -applikasjonen overstiger grenseverdien, som diskutert i denne artikkelen. Dette problemet oppstår når vi bruker aritmetiske operasjoner i programmet, og utfallet overstiger maksimal rekkevidde, som vi så i dette innlegget. Når du konverterer fra en datatype til en annen, oppstår denne feilen når verdien overstiger lagringsområdet for den valgte datatypen. Til slutt viste vi hvordan vi skal håndtere dette problemet ved å bruke forsøket og unntatt blokker for å administrere unntak.