Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Faça como eu fiz: calculadora com lambda

def titulo():
    print('''
░█████╗░░█████╗░██╗░░░░░░█████╗░██╗░░░██╗██╗░░░░░░█████╗░██████╗░░█████╗░██████╗░░█████╗░
██╔══██╗██╔══██╗██║░░░░░██╔══██╗██║░░░██║██║░░░░░██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗
██║░░╚═╝███████║██║░░░░░██║░░╚═╝██║░░░██║██║░░░░░███████║██║░░██║██║░░██║██████╔╝███████║
██║░░██╗██╔══██║██║░░░░░██║░░██╗██║░░░██║██║░░░░░██╔══██║██║░░██║██║░░██║██╔══██╗██╔══██║
╚█████╔╝██║░░██║███████╗╚█████╔╝╚██████╔╝███████╗██║░░██║██████╔╝╚█████╔╝██║░░██║██║░░██║
░╚════╝░╚═╝░░╚═╝╚══════╝░╚════╝░░╚═════╝░╚══════╝╚═╝░░╚═╝╚═════╝░░╚════╝░╚═╝░░╚═╝╚═╝░░╚═╝\n''')

def obtendo_variaveis():
    x = float(input('Digite o primeiro número: '))
    y = float(input('Digite o segundo número: '))
    return x, y

def cabecalho():
    print('''
OPERAÇÕES ARITMÉTICAS
(1) Soma
(2) Multiplicação
(3) Divisão
(4) Subtração''')
    return input('Escolha a opção que deseja: ')

soma = lambda x, y: x + y
multiplica = lambda x, y: x * y
divide = lambda x, y: x / y
subtrai = lambda x, y: x - y


def main():
    titulo()
    x, y = obtendo_variaveis()
    opcao = cabecalho()
    operacoes = {'1': soma, '2': multiplica, '3': divide, '4': subtrai}
    if opcao in operacoes:
        if opcao == '3' and y == 0:
            print('Operação inválida')
        else:
            resultado = operacoes[opcao](x, y)
            print(f'O resultado da operação é: {resultado}')


if __name__ == '__main__':
    main()
1 resposta

Olá, Giovanni! Tudo bem?

A sua atividade “Faça como eu fiz: calculadora com lambda” ficou bem completa e mostra um bom uso de funções, lambda e organização do fluxo com main().

O uso do dicionário operacoes foi uma ótima escolha, porque associa cada opção digitada a uma função lambda, deixando o código mais limpo do que vários if e elif seguidos. Uma dica simples é adicionar uma mensagem para quando a opção não existir no dicionário, usando um else após if opcao in operacoes:, assim a pessoa usuária recebe um retorno claro caso digite algo diferente de 1, 2, 3 ou 4.

Que outra operação você adicionaria nessa calculadora usando uma nova função lambda?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!