1
resposta

Lista de Exercícios



1. Análise da lista

```python
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 em que o maior número é {maior} e o menor número é {menor}. A soma dos valores presentes nela é igual a {soma}")

2. Função da tabuada

def tabuada(n):
    print(f"Tabuada do {n}:")
    for i in range(11):
        print(f"{n} x {i} = {n * i}")

num = int(input("Digite um número inteiro para a tabuada: "))
tabuada(num)

3. Filtrar múltiplos de 3

def multiplos_de_3(lista):
    return [x for x in lista if x % 3 == 0]

numeros = [97, 80, 94, 88, 80, 1, 16, 53, 62, 32, 24, 99]
mult_3 = multiplos_de_3(numeros)
print("Múltiplos de 3:", mult_3)

4. Lista de quadrados com map e lambda

lista = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
quadrados = list(map(lambda x: x**2, lista))
print("Quadrados:", quadrados)

5. Cálculo da média após excluir maior e menor

def nota_skatista():
    notas = [float(input(f"Digite a nota {i+1}: ")) for i in range(5)]
    notas.sort()
    media = sum(notas[1:-1]) / 3
    print(f"Nota da manobra: {media:.2f}")

nota_skatista()

6. Avaliação de estudante

def avaliar_estudante(notas):
    maior = max(notas)
    menor = min(notas)
    media = sum(notas) / len(notas)
    situacao = "Aprovado(a)" if media >= 6 else "Reprovado(a)"
    print(f"O(a) estudante obteve uma média de {media:.2f}, com a sua maior nota de {maior} pontos e a menor nota de {menor} pontos e foi {situacao}")

notas = [float(input(f"Digite a nota {i+1}: ")) for i in range(4)]
avaliar_estudante(notas)

7. Concatenar nomes e sobrenomes

nomes = ["joão", "MaRia", "JOSÉ"]
sobrenomes = ["SILVA", "souza", "Tavares"]

nomes_completos = list(map(lambda n, s: f"{n.capitalize()} {s.capitalize()}", nomes, sobrenomes))
for nome in nomes_completos:
    print("Nome completo:", nome)

8. Cálculo de pontuação e aproveitamento

def calcula_pontos(marcados, sofridos):
    pontos = 0
    for m, s in zip(marcados, sofridos):
        if m > s:
            pontos += 3
        elif m == s:
            pontos += 1
    total_jogos = len(marcados)
    aproveitamento = (pontos / (total_jogos * 3)) * 100
    print(f"A pontuação do time foi de {pontos} e seu aproveitamento foi de {aproveitamento:.2f}%")

gols_marcados = [2, 1, 3, 1, 0]
gols_sofridos = [1, 2, 2, 1, 3]
calcula_pontos(gols_marcados, gols_sofridos)

9. Cálculo de gastos de viagem

def gasto_hotel(dias):
    return dias * 150

def gasto_gasolina(distancia):
    litros = (distancia * 2) / 14
    return litros * 5

def gasto_passeio(dias, cidade_index):
    valores = [200, 400, 250, 300]
    return dias * valores[cidade_index]

# Testando para 3 dias em Salvador (índice 0)
cidade = "Salvador"
dias = 3
distancias = [850, 800, 300, 550]
cidade_index = 0

total = gasto_hotel(dias) + gasto_gasolina(distancias[cidade_index]) + gasto_passeio(dias, cidade_index)
print(f"Com base nos gastos definidos, uma viagem de {dias} dias para {cidade} saindo de Recife custaria {total:.2f} reais")

10. Filtrar palavras com 5 letras ou mais

frase = "Aprender Python aqui na Alura é muito bom"
frase = frase.replace(",", " ").replace(".", " ").replace("!", " ").replace("?", " ")
palavras = frase.split()
palavras_filtradas = list(filter(lambda p: len(p) >= 5, palavras))
print("Palavras com 5 ou mais letras:", palavras_filtradas)

1 resposta

Olá, Viviane! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Observei que você explorou o uso de funções com lambda para transformar as listas, utilizou muito bem o map e filter sobre as coleções e ainda compreendeu a importância do uso de condicionais para avaliar situações como pontuação e aprovação de forma automatizada.

Uma dica interessante para o futuro é usar expressões condicionais com zip para processar listas paralelas de maneira mais concisa. Dessa forma:

gols_marcados = [2, 1, 3, 1, 0]
gols_sofridos = [1, 2, 2, 1, 3]

resultados = [(m, s, "Vitória" if m > s else "Empate" if m == s else "Derrota") 
              for m, s in zip(gols_marcados, gols_sofridos)]

for marcado, sofrido, resultado in resultados:
    print(f"{marcado} x {sofrido}: {resultado}")

Resultado:

2 x 1: Vitória
1 x 2: Derrota
3 x 2: Vitória
1 x 1: Empate
0 x 3: Derrota

Isso faz com que a lógica de avaliação de desempenho fique mais clara e organizada, especialmente em tabelas esportivas ou situações de comparação entre listas.

Ícone de sugestão Para saber mais:

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

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

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!