Jump to content

Como adicionar exponencial à uma calculadora?


Recommended Posts

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
Share on other 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
Share on other 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
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...