Olá, Estudante. Como vai?
Parabéns pelo projeto! Sua calculadora utilizando funções lambda em Python ficou excelente e funcionou perfeitamente, exibindo o resultado correto de 1700.0 para a multiplicação de 25 por 68.
O uso de funções anônimas (lambda) é ideal para cenários como o de uma calculadora simples, onde realizamos operações matemáticas curtas que ocupam apenas uma única linha de código. Você estruturou muito bem a lógica de captura de dados e a cadeia de condicionais (if/elif/else) para direcionar o operador escolhido.
Para enriquecer ainda mais o seu aprendizado e trazer duas boas práticas bem valiosas de programação em Python, deixo aqui algumas sugestões:
Sempre que criamos calculadoras ou lidamos com divisão de dados inseridos pelo usuário, precisamos prever o cenário em que o segundo número digitado pode ser o zero. No seu código atual, se o usuário tentar dividir qualquer número por 0, o Python vai estourar um erro clássico chamado ZeroDivisionError e interromper a execução do programa.
Uma boa prática para tornar seu algoritmo mais robusto é adicionar essa validação diretamente no bloco da divisão:
elif operador == "/":
if num2 != 0:
resultado = divisao(num1, num2)
else:
resultado = "Erro: Não é possível dividir por zero."
Conforme você for evoluindo no Python, verá que estruturas com muitos elif podem se tornar difíceis de manter. Uma técnica elegante e muito utilizada no mercado é mapear as operações dentro de um dicionário, associando o símbolo do operador diretamente à sua função lambda correspondente.
Veja como o seu bloco de verificação poderia ser simplificado e limpo:
# Mapeando os operadores diretamente para as funções lambda
operacoes = {
"+": soma,
"-": subtracao,
"*": multiplicacao,
"/": divisao
}
# Verificando e executando a operação sem precisar de vários IFs
if operador in operacoes:
if operador == "/" and num2 == 0:
resultado = "Erro: Divisão por zero."
else:
resultado = operacoes[operador](num1, num2)
else:
resultado = "Operação inválida."
Essa abordagem deixa o código extremamente escalável. Se amanhã você quiser adicionar uma operação de potenciação, por exemplo, bastaria criar a lambda e adicionar uma única linha nova dentro do dicionário operacoes.
A sua base lógica com funções e manipulação de tipos (float e string) está excelente. Continue mandando ver nos desafios!
Espero que possa ter lhe ajudado!