E aí! Tudo bem?
Parabéns! Mantenha o ritmo nos exercícios e continue compartilhando na nossa comunidade.
Percebi que você praticou o uso de funções com parâmetros dinâmicos, aplicou muito bem o match-case
para organizar múltiplas opções de operação e ainda entendeu a relevância de tratar exceções para evitar falhas durante a execução do programa.
Uma sugestão para evoluir ainda mais é usar um dicionários de funções com o objetivo de tornar o código mais enxuto e escalável. Veja só:
def calcular(operacao, a, b):
operacoes = {
'+': lambda a, b: a + b,
'-': lambda a, b: a - b,
'*': lambda a, b: a * b,
'/': lambda a, b: a / b
}
return operacoes[operacao](a, b)
try:
numero_1 = float(input("Digite o primeiro número :"))
operacao = input("Escolha a operação: (+, -, *, /): ")
while operacao not in ('+','-','*','/') :
operacao = input("Operação Inválida ! Escolha uma operação: (+, -, *, /): ")
numero_2 = float(input("Digite o segundo número :"))
resultado = calcular(operacao,numero_1,numero_2)
print(f'O resultado foi: {resultado}')
except ValueError:
print("Entrada inválida: Digite apenas número inteiros !")
except ZeroDivisionError:
print("Erro: Divisão por zero não é permitida.")
Essa abordagem facilita a manutenção e permite adicionar novas operações com mais rapidez.
Fico à disposição! E se precisar, conte sempre com o apoio do fórum.
Abraço e bons estudos!
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!