Olá, Vanessa. Como vai?
Parabéns pela resolução do desafio! Você aplicou uma lógica muito robusta ao combinar duas estruturas de repetição diferentes: o for para controlar a quantidade exata de iterações (os 15 dados) e o while para garantir a validação de entrada, o que é uma excelente prática de programação.
Analisando a imagem do seu código, gostaria de destacar alguns pontos positivos e oferecer uma dica para tornar seu script ainda mais profissional:
- Validação Infinita: O uso do
while (nota < 0) or (nota > 5) é perfeito porque impede que o programa avance com um dado incorreto, obrigando a correção imediata. Notei no seu log de execução que, na nota do usuário 6, o sistema funcionou exatamente como esperado ao rejeitar o valor "6". - F-strings: Você utilizou f-strings de forma muito precisa para identificar qual usuário estava sendo avaliado, o que melhora muito a experiência de quem está inserindo os dados.
- Uso do range: O
range(15) é a escolha ideal quando já sabemos o limite de repetições.
Uma pequena sugestão de melhoria:
No seu código, a mensagem de Verificação OK está dentro do bloco while. Se o usuário digitar a nota correta de primeira, o programa sai do while e não imprime essa confirmação específica para aquela nota. Para garantir que a confirmação apareça sempre, você pode mover o print da verificação uma linha para a esquerda, deixando-o fora do while, mas ainda dentro do for.
Veja como ficaria essa pequena mudança:
for dados in range(15):
nota = float(input(f'Digite a nota do usuário {dados}: '))
while (nota < 0) or (nota > 5):
nota = float(input(f'Nota inválida, favor digitar novamente a nota {dados}: '))
# Movendo para fora do while para imprimir sempre que a nota for validada
print(f'Verificação OK para a nota do usuário {dados}: {nota}')
print('Todas as notas foram verificadas e são válidas.')
Essa estrutura garante que, independentemente de o usuário ter errado ou acertado de primeira, ele receba o feedback de que aquela nota foi processada com sucesso.
Espero que possa ter lhe ajudado!