import msvcrt
import os
def limpar_tela():
os.system("cls")
def pausa_limpa(texto):
print(texto)
print("Aperte uma tecla para continuar", end="", flush=True)
msvcrt.getch()
limpar_tela()
def pedir_numero(n):
while True:
try:
numero = float(input(f"Digite o {n}° número: "))
except ValueError:
pausa_limpa("Erro de caractere")
continue
return numero
def pedir_operacao():
operacoes = ["+", "-", "*", "/"]
while True:
try:
op = input("Digite a operação (+, -, *, /): ")
if op not in operacoes:
raise ValueError
except:
pausa_limpa("Erro. Não digitou as opções válidas")
continue
return op
def soma(n1, n2):
return (n1 + n2)
def sub(n1, n2):
return (n1 - n2)
def mul(n1, n2):
return (n1 * n2)
def div(n1, n2):
try:
return (n1 / n2)
except ZeroDivisionError:
pausa_limpa("Erro: Divisão por 0")
return None
def calculando(n1, n2, op):
if op == "+":
return soma(n1, n2)
elif op == "-":
return sub(n1, n2)
elif op == "*":
return mul(n1, n2)
else:
return div(n1, n2)
def calculadora_simples():
n1 = pedir_numero(1)
op = pedir_operacao()
n2 = pedir_numero(2)
resultado = calculando(n1, n2, op)
print(f"O resultado é {resultado}")
def funcao_continuar():
respostas_validas = ["s", "sim", "n", "nao"]
while True:
resp = input("Quer fazer outra operação (s/n): ").lower()
if resp in ["s", "sim"]:
return True
elif resp in ["n", "nao"]:
return False
else:
pausa_limpa("Resposta inválida. Digite 's' ou 'n'")
def main():
while True:
calculadora_simples()
if funcao_continuar():
limpar_tela()
else:
print("Encerrando programa.")
break
if __name__ == "__main__":
main()