# Desafio 1: Estatísticas de Lista
lista = [16, 14, 63, 65, 17, 99, 70, 11, 20, 48, 79, 32, 17, 89, 12, 25, 66]
tam = len(lista)
maior = max(lista)
menor = min(lista)
soma = sum(lista)
print(f"A lista possui {tam} números. Maior: {maior}, Menor: {menor}. Soma: {soma}")
# Desafio 4: Quadrados com Lambda e Map
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
quadrados = list(map(lambda x: x**2, numeros))
print(f"Quadrados: {quadrados}")
# Desafio 7: Nomes Completos
nomes = ["joão", "MaRia", "JOSÉ"]
sobrenomes = ["SILVA", "souza", "Tavares"]
# Usamos title() para padronizar: Primeira letra maiúscula, restante minúscula
completos = list(map(lambda n, s: f"{n.title()} {s.title()}", nomes, sobrenomes))
print(f"Nomes tratados: {completos}")
# Desafio 10: Filtro de Palavras (NLP)
frase = "Aprender Python aqui na Alura é muito bom"
# Limpeza de pontuação e separação
palavras = frase.replace(',',' ').replace('.',' ').split()
# Filtro: apenas palavras com 5 ou mais letras
longas = list(filter(lambda p: len(p) >= 5, palavras))
print(f"Palavras com 5+ letras: {longas}")
# Desafio 5: Pontuação de Skate (Média aparada)
def calcular_skate(notas):
notas.remove(max(notas))
notas.remove(min(notas))
return sum(notas) / len(notas)
notas_skate = [8.5, 9.0, 7.5, 9.5, 8.0]
media_final = calcular_skate(notas_skate)
print(f"Nota da manobra: {media_final:.2f}")
# Desafio 8: Pontuação de Futebol
def calcula_pontos(marcados, sofridos):
pontos = 0
for m, s in zip(marcados, sofridos):
if m > s: pontos += 3
elif m == s: pontos += 1
aproveitamento = (pontos / (len(marcados) * 3)) * 100
return pontos, aproveitamento
gols_m = [2, 1, 3, 1, 0]
gols_s = [1, 2, 2, 1, 3]
pts, apr = calcula_pontos(gols_m, gols_s)
print(f"Pontos: {pts} | Aproveitamento: {apr:.1f}%")