Jump to content

Como adicionar exponencial à uma calculadora?


Matheus Pessoa

Postagens Recomendadas

Fiz uma calculadora simples com Python usando o seguinte código:

numero_1 = input('Digite um número que deseja somar, subtrair, multiplicar, dividir ou elevar: ')
numero_2 = input('Digite o outro número da operação ')
sinal = input('Digite o sinal que deseja efetuar o cálculo (+  -  *  ou  /), se quiser uma exponencial, digite **: ')
 
if sinal is '**':
    resultado = int(numero_1) ** int(numero_2)
if sinal is '*':
    resultado = int(numero_1) * int(numero_2)
if sinal is '/':
    resultado = int(numero_1) / int(numero_2)
if sinal is '+':
    resultado = int(numero_1) + int(numero_2)
if sinal is '-':
    resultado = int(numero_1) - int(numero_2)
 
print(f'O resultado da operação {numero_1} {sinal} {numero_2} é igual à {resultado}' )

 

As funções de soma, subtração. divisão e multiplicação deram certo, mas quando tento usar a de expoente, recebo a seguinte mensagem:

Traceback (most recent call last):
  File "c:\Users\mathe\repositories_git\MasterBlasterM\MasterBlasterM\Arquivos Python\Calculadora.py", line 19, in <module>
    print(f'O resultado da operação {numero_1} {sinal} {numero_2} é igual à {resultado}' )
                                                                             ^^^^^^^^^
NameError: name 'resultado' is not defined

 

Porque isso está acontecendo e qual seria a forma correta de adicionar essa função à calculadora?

 

 

 

Link to comment
Compartilhe em outros sites

Olá Matheus o erro pode estar  acontece porque a variável 'resultado' não foi inicializada antes de ser usada no print  Uma opção para corrigir isso, seria inicializá-la como None antes de todas as condições e, em seguida, atribuir o resultado da operação dentro das condições. Aqui está a forma sugerida para corrigida do código:

 

numero_1 = input('Digite um número que deseja somar, subtrair, multiplicar, dividir ou elevar: ')
numero_2 = input('Digite o outro número da operação ')
sinal = input('Digite o sinal que deseja efetuar o cálculo (+  -  *  ou  /), se quiser uma exponencial, digite **: ')
 
resultado = None

if sinal is '**':
    resultado = int(numero_1) ** int(numero_2)
if sinal is '*':
    resultado = int(numero_1) * int(numero_2)
if sinal is '/':
    resultado = int(numero_1) / int(numero_2)
if sinal is '+':
    resultado = int(numero_1) + int(numero_2)
if sinal is '-':
    resultado = int(numero_1) - int(numero_2)
 
print(f'O resultado da operação {numero_1} {sinal} {numero_2} é igual à {resultado}' )

 

Link to comment
Compartilhe em outros sites

Fala Matheus tudo bom ?

Encontrei a solução para o exponencial.

A comparação "is" verifica se duas variáveis apontam para o mesmo objeto na memória, enquanto a comparação "==" verifica se duas variáveis possuem o mesmo valor. Então, a comparação correta seria: "if sinal ==
 

numero_1 = input('Digite um número que deseja somar, subtrair, multiplicar, dividir ou elevar: ')
numero_2 = input('Digite o outro número da operação ')
sinal = input('Digite o sinal que deseja efetuar o cálculo (+  -  *  ou  /), se quiser uma exponencial, digite **: ')
 
resultado = None

if sinal == '**':
    resultado = int(numero_1) ** int(numero_2)
if sinal is '*':
    resultado = int(numero_1) * int(numero_2)
if sinal is '/':
    resultado = int(numero_1) / int(numero_2)
if sinal is '+':
    resultado = int(numero_1) + int(numero_2)
if sinal is '-':
    resultado = int(numero_1) - int(numero_2)
 
print(f'O resultado da operação {numero_1} {sinal} {numero_2} é igual à {resultado}' )



Abaixo o retorno esperado:

Digite um número que deseja somar, subtrair, multiplicar, dividir ou elevar: 5
Digite o outro número da operação 5
Digite o sinal que deseja efetuar o cálculo (+  -  *  ou  /), se quiser uma exponencial, digite **: **
O resultado da operação 5 ** 5 é igual à 3125



 

Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...