1
resposta

[Sugestão] Desafio: hora da prática (Aula 2, Exercício 5)

Você foi contratado(a) como cientista de dados de uma associação de skate. Para analisar as notas recebidas de skatistas em algumas competições ao longo do ano, você precisa criar um código que calcula a pontuação dos(as) atletas. Para isso, o seu código deve receber 5 notas digitadas pelas pessoas juradas.

Para calcular a pontuação de um(a) skatista, você precisa eliminar a maior e a menor pontuação dentre as 5 notas e tirar a média das 3 notas que sobraram. Retorne a média para apresentar o texto:

"Nota da manobra: [media]"

notas = []

def manobra(lista):

    for i in range(5):
        nota = float(input(f'Digite a {i}ª nota: '))
        lista.append(nota)
    
    lista.remove(max(lista))
    lista.remove(min(lista))

    return sum(lista) / len(lista)

media = manobra(notas)
print(f'Nota da Manobra: {round(media, 1)}')
1 resposta

Oi, Malderson! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu raciocínio ficou bem estruturado, principalmente na criação da função manobra() e no uso de max() e min() para remover automaticamente as maiores e menores notas. Além disso, o uso de sum(lista) / len(lista) deixou o cálculo da média simples e organizado, o que facilita bastante a leitura do código.

Uma dica interessante para o futuro é utilizar o método sorted() para trabalhar com listas ordenadas sem alterar a lista original. Veja este exemplo:


notas = [9.5, 8.0, 7.5, 9.0, 6.5]

notas_ordenadas = sorted(notas)

media = sum(notas_ordenadas[1:4]) / 3

print(media)

Nesse codigo, a lista e ordenada, a menor e a maior nota sao ignoradas usando fatiamento, e a media das tres notas centrais e calculada automaticamente.

Qual parte desse desafio voce achou mais interessante durante a construcao do codigo?

Alura

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