Erro da faixa de matemática do Python

Erro da faixa de matemática do Python
Antes de entrarmos no erro de faixa de matemática do Python, vamos dar uma olhada no módulo de matemática do Python. O módulo de matemática é um módulo Python comumente usado o tempo todo. Para usar as funções matemáticas deste módulo, você deve primeiro importá -lo usando a importação de matemática. Ele fornece acesso às funcionalidades da biblioteca C subjacente. Cálculo da raiz quadrada, por exemplo, importar matemática.SQRT (4). Se um valor em uma computação matemática exceder o limite permitido de tipo de dados em Python, uma exceção chamada “OverflowerRor: Math Wines Error” será aumentada.

Neste post, examinaremos os meandros do problema "OverflowerRor". O limite máximo para cada tipo de dados é definido no Python. O valor deve estar dentro do limite de tipo de dados antes de executar qualquer cálculo matemático. Se o valor for muito grande, o tipo de dados não o acomodará. O Python gera um erro nesse cenário, observando que o valor excede o limite permitido. Nesta circunstância, o desenvolvedor deve tomar medidas apropriadas em resposta ao interesse. Veremos como lidar com essas situações neste artigo. Nós analisamos todas as diferentes soluções para este problema. O Python usa operando ao realizar cálculos matemáticos. Os operandos são qualquer uma das variáveis ​​dos tipos de dados Python. Os tipos de dados definidos podem ser armazenados até o limite máximo na variável. Se o aplicativo tentar armazenar um valor que exceda o limite máximo do tipo de dados, o Python poderá apresentar um erro declarando que o limite permitido foi excedido. Veremos diferentes casos que causam a matemática

Exemplo 1:

Este problema pode ser recriado usando a operação de matemática Exp Python. O número máximo de tipos de dados que podem ser usados ​​é 709.78271. O programa Python exibirá um erro se o programa simular um valor que exceda o limite permitido.

importação de matemática
saída = matemática.Exp (1000)
Imprimir (saída)

O acima levantou o erro, como você pode ver.

Exemplo 2:

Podemos ver no código deste programa que estamos declarando o módulo de matemática, depois disso, usando -o para gerar números exponenciais como exp (1000), onde x é 1000 enquanto e é 2.7, e quando tentamos calcular isso, ele nos proporciona um valor como resultado que é o dobro e não pode imprimir o resultado. Como pode ser visto no programa a seguir, ocorre um erro de transbordamento, indicando que o valor está fora de alcance porque o valor fornecido é 1000 e o resultado está fora do intervalo.

print ("Um programa Python que gera o erro de transbordamento")
importação de matemática
print ("Aqui está o valor exponencial:")
Imprimir (matemática.Exp (1000))

Como você pode ver, o código acima causou o erro da faixa de matemática.

Exemplo 3:

A frase "resultado muito grande" não se refere ao número de caracteres na representação decimal do número; Em vez disso, significa que o número produzido pela sua função exponencial é grande o suficiente para invadir qualquer tipo que o Python empregue para armazenar valores de ponto flutuante internamente. Os carros alegóricos em Python não são precisão arbitrária nem de tamanho ilimitado. x = x ** 2 é muito grande quando eu = 10. Use um tipo alternativo para seus cálculos de ponto flutuante, como o módulo decimal: D = decimal.Decimal (x ** 2), ou modifique seu código de modo que e ** (x) não transborde ou subaflua.

a = 2.0
para i no intervalo (50):
a = a ** 2
Imprimir (a)

O seguinte é um exemplo de um superflowerror.

Solução 1:

Como afirmado anteriormente, o valor não deve superar o limite máximo de tipo de dados. A dificuldade pode ser resolvida calculando o valor exponencial com menos. Antes da realização da operação exponencial, uma condição se é usada para validar o valor de entrada. O chamador receberá a mensagem de erro adequada se o valor de entrada for maior que 0. O código abaixo demonstra como utilizar a função exponencial sem causar um erro do programa.

importação de matemática
num = 80
se num<50:
saída = matemática.exp (num)
Imprimir (saída)
outro:
Imprimir ("O valor de entrada excede o limite permitido.")

O código acima é executado com sucesso sem causar erros, como mostrado abaixo.

Solução 2:

Se o valor de entrada não for confiável, o erro poderá ser tratado usando o construto Try-Except. Adicione o código apropriado para a execução do programa no bloco de tentativa. Se ocorrer um erro, reconheça -o e escolha um curso de ação alternativo. Neste método, o código lidará com a exceção de estouro. O código abaixo demonstra como usar tente e exceto para lidar com um erro de transbordamento em um programa Python.

importação de matemática
tentar:
resultado = matemática.Exp (1000)
Exceto OverflowerRor:
resultado = float ('inf')
Imprimir (resultado)

Abaixo está o resultado.

Conclusão:

Um erro de transbordamento acontece quando o valor atual do tempo de execução recuperado pelo aplicativo Python excede o valor limite, conforme discutido neste artigo. Esta questão surge quando aplicamos operações aritméticas no programa, e o resultado excede o valor máximo de intervalo, como vimos neste post. Ao converter de um tipo de dados para outro, esse erro ocorre quando o valor excede o intervalo de armazenamento do tipo de dados escolhido. Por fim, mostramos como lidar com esse problema usando a tentativa e exceto blocos para gerenciar exceções.