1
resposta

[RESPOSTA]

def primeiro_numero():
    return float(input("Digite o primeiro número: "))

def segundo_numero():
    return float(input("Digite o segundo número: "))

def escolha_operacao():
    return input("Escolha a operação (| + | - | * | / |): ")

def operacao(n1, n2, op):
    if op == "+":
        return lambda n1, n2: n1 + n2
    elif op == "-":
        return  lambda n1, n2: n1 - n2
    elif op == "*":
        return lambda n1, n2: n1 * n2
    elif op == "/":
        return lambda n1, n2: n1 / n2 if n2 != 0 else "Erro: Divisão por zero"
    else:
        return lambda n1, n2: n1 + n2

def calculadora():
    numero1 = primeiro_numero()
    numero2 = segundo_numero()
    op = escolha_operacao()
    calculo = operacao(numero1, numero2, op)
    print(f'O resultado é: {calculo(numero1, numero2)}')

calculadora()
1 resposta

Olá, Maurício! Como vai?

Mandou muito bem na resolução da atividade!

Observei que você explorou o uso de funções lambda para tornar o código mais conciso, utilizou muito bem o retorno de funções dentro de outra função para aplicar lógica condicional de forma dinâmica e ainda compreendeu a importância do encapsulamento de operações para manter o código organizado e reutilizável.

Uma dica interessante para o futuro é usar funções anônimas com map() para aplicar transformações em listas de forma elegante. Dessa forma:

numeros = [1, 2, 3, 4]
dobro = list(map(lambda x: x * 2, numeros))
print(dobro)

Resultado:

[2, 4, 6, 8]

Isso faz com que você aplique uma operação a cada item da lista sem precisar criar uma função nomeada, o que pode ser muito útil para manipulações rápidas.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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