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!

0
respostas

Calculadora com Lambda

Nesta atividade, estou aprendendo a utilizar funções lambda para executar operações simples de forma rápida e objetiva. Também estou aprendendo a organizar funções em um dicionário, permitindo que o sistema escolha automaticamente qual regra aplicar.

O conceito central é:

Receber uma operação
↓
Selecionar a regra correspondente
↓
Executar o cálculo
↓
Retornar o resultado

Solução da atividade da Alura

soma = lambda x, y: x + y

subtrai = lambda x, y: x - y

multiplica = lambda x, y: x * y

divide = lambda x, y: x / y if y != 0 else "Erro: Divisão por zero"

x = float(input("Digite o primeiro número: "))
y = float(input("Digite o segundo número: "))

operacao = input("Escolha a operação (+, -, *, /): ")

operacoes = {
    '+': soma,
    '-': subtrai,
    '*': multiplica,
    '/': divide
}

if operacao in operacoes:
    resultado = operacoes[operacao](x, y)
    print(f"O resultado é: {resultado}")
else:
    print("Operação inválida")

O que realmente está sendo ensinado?

Aparentemente estamos aprendendo uma calculadora.

Mas, na prática, estamos aprendendo algo muito mais importante:

Selecionar automaticamente uma regra de negócio.

Aplicação na Plataforma AFA

Na Plataforma AFA, diversas regras precisam ser executadas automaticamente.

Por exemplo:

  • somar registros positivos;
  • somar registros negativos;
  • calcular a nota AFA;
  • calcular a média de A.C. (avaliação em construção);
  • calcular a nota trimestral;
  • identificar estudantes em atenção pedagógica.

Em vez de criar vários blocos if, podemos criar um catálogo de operações.

Exemplo: cálculo da nota AFA

somar_registros = lambda nota_inicial, pontuacao: nota_inicial + pontuacao

nota_inicial = 8.0

pontuacao = 1.5

nota_afa = somar_registros(nota_inicial, pontuacao)

nota_afa = min(nota_afa, 10.0)

print(nota_afa)

Resultado:

9.5

Exemplo real do projeto AFA

Vamos imaginar o estudante Anik.

nota_inicial = 8.0

pontuacao_positiva = 8.1

pontuacao_negativa = -0.9

Podemos criar operações específicas:

somar_pontos = lambda positivos, negativos: positivos + negativos

calcular_nota_afa = lambda nota_base, saldo: min(nota_base + saldo, 10.0)

Aplicação:

saldo = somar_pontos(8.1, -0.9)

nota_final = calcular_nota_afa(8.0, saldo)

print(nota_final)

Resultado:

10.0

Aplicação na futura nota trimestral

Esta atividade conversa diretamente com o problema que estamos modelando para a evolução do sistema ACtive Soft.

Hoje:

Professor calcula tudo manualmente.

Amanhã:

Sistema recebe:
↓
Notas de A.C.
↓
Nota AFA
↓
Nota extra do simulado
↓
Calcula automaticamente

Podemos criar funções lambda para cada etapa.

media_ac = lambda soma, quantidade: soma / quantidade

adicionar_bonus = lambda media, bonus: media + bonus

nota_trimestral = lambda ac, af: (ac + af) / 2

Exemplo:

ac = 8.5

bonus = 0.5

af = 9.0

ac_final = adicionar_bonus(ac, bonus)

trimestre = nota_trimestral(ac_final, af)

print(trimestre)

O que realmente aprendi?

Na atividade da Alura:

Escolher operação matemática
↓
Executar cálculo

Na Plataforma AFA:

Escolher regra pedagógica
↓
Executar cálculo correspondente

Percebi que o principal aprendizado desta atividade foi compreender que funções lambda permitem criar pequenas regras especializadas e organizá-las de forma estruturada. No contexto da Plataforma AFA, elas poderão compor o motor de cálculo responsável por transformar registros dos professores em notas, indicadores, alertas pedagógicos e relatórios automáticos.