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.