from math import log def soma(x,y): return x+y def menos(x,y): return x-y operações = { '+': soma, '-': menos, '*': (lambda x,y: x*y), '/': (lambda x,y: x/y), '//': (lambda x,y: x//y), '%': (lambda x,y: x%y), '**': (lambda x,y: x**y), 'raiz': (lambda x,y: x**(1/y)), 'log': log, } def recebe_número(prompt): while True: candidato = input(prompt) if candidato.isdigit(): return int(candidato) if candidato.lower() == 'x': return 'x' print("Só aceito números inteiros não negativos ou x!") def main(): inicio = True print("Calculadora Simples") while True: print() print("Digite x a qualquer momento para sair") if inicio: inicio = False esquerda = recebe_número("Qual o primeiro número (inteiro não negativo)?\n") if esquerda == 'x': return else: esquerda = resultado direita = recebe_número("Qual o segundo número (inteiro não negativo)?\n") if direita == 'x': return while True: operação = input(f"Qual operação? Possibilidades: {' '.join(operações.keys())}\n") if operação in operações: operação_a_fazer = operações[operação] resultado = operação_a_fazer(esquerda, direita) print(f"Resultado: {resultado}") break if operação.lower() == 'x': return print("Não sei fazer isso!") if __name__ == '__main__': main()