import time
import os
# Variáveis para as operações matemáticas
soma = lambda x, y: x + y
subtracao = lambda x, y: x - y
multiplicacao = lambda x, y: x * y
divisao = lambda x, y: x / y
# ----------------------------------------
# Função para exibir o menu da calculadora e realizar as operações
def menu_calculadora():
opcoes_menu = (1, 2, 3, 4, 5)
while True:
menu = ('''Calculadora
1 - Soma
2 - Subtração
3 - Multiplicação
4 - Divisão
5 - Sair''')
linhas = (menu.split("\n"))
for i in linhas:
print(i.strip())
print("\n" + "-" * 30)
# Condições de escolhas do menu
try:
opcao = int(input("Escolha uma opção: "))
if opcao not in opcoes_menu:
raise ValueError("Opção inválida.")
x = float(input("Digite o primeiro número: "))
y = float(input("Digite o segundo número: "))
if opcao == 1:
resultado = soma(x, y)
elif opcao == 2:
resultado = subtracao(x, y)
elif opcao == 3:
resultado = multiplicacao(x, y)
elif opcao == 4:
if y == 0:
raise ZeroDivisionError("Divisão por zero não é permitida.")
resultado = divisao(x, y)
elif opcao == 5:
print("Saindo da calculadora...")
break
print(f"\nResultado: {resultado}")
time.sleep(2)
limpar_tela()
# Tratamento de exceções de entrada inválida e divisão por zero
except ValueError as e:
limpar_tela()
print(f"Erro: {e}, tente novamente.")
time.sleep(2)
limpar_tela()
continue
except ZeroDivisionError as e:
limpar_tela()
print(f"\nErro: {e}")
time.sleep(2)
limpar_tela()
continue
def limpar_tela():
if os.name == 'nt': # Windows
os.system('cls')
else: # Linux, macOS
os.system('clear')
if __name__ == "__main__":
menu_calculadora()