Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Pedindo ao usuário que insira uma lista de valores

Olá!

No caso do seguinte exercício: 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.

Gostaria de pedir ao usuário que ele digitasse uma única vez, as cinco notas, no lugar de fazer 5x input. Porém o código que gerei está dando erro na hora de transformar a lista(str) em float. Saberiam me dizer o que estou fazendo errado?

Obrigada! Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Oi Laisa! Tudo certinho?

O motivo do erro está na linha 5 do seu código. Onde você tentou converter as strings em números de ponto flutuante, você estava usando notas.split() em vez de nota, no loop.

O código corrigido fica assim:

notas = input("Quais foram as 5 notas obtidas (separe as notas por vírgula):")
lista_str = notas.split(",")

try:
    notas = [float(nota) for nota in lista_str]  # Correção aqui
except ValueError:
    print("Insira números válidos")
    exit()

notas.remove(max(notas))
notas.remove(min(notas))

media = sum(notas) / len(notas)
print(f"A nota da manobra foi: {media:.2f}")

Adicionei também o :.2f na f-string para formatar a saída da média com apenas duas casas decimais.

Espero ter ajudado! Estou por aqui se tiver mais alguma dúvida.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!