Olá, Patrick! Tudo bom?
O erro está nos dizendo que nós estamos fora do limite do índice da lista. E por que isso ocorre?
No Python, o índice de uma lista começa no zero "0", e se a lista tem tamanho N, o último índice tem tamanho N-1. Então para a seguinte lista:
notas = [1.0, 2.0, 7.0, 8.0, 10.0, 4.2]
Nós temos 6 elementos, mas os índices da lista vão de 0 até 5.
No código da imagem, quando você utiliza o notas_de_provas.append() dentro de um laço de repetição que se repete 4 vezes, por conta do range(1, 5), nós criamos 4 elementos na lista, mas o índice só vai de 0 até 3. De forma só temos os índices notas_de_provas[0], notas_de_provas[1], notas_de_provas[2] e notas_de_provas[3].
Mas e o índice 4 que aparece no laço for e é passado no print()? Nós ainda não temos :(, e por isso o erro é mostrado.
E para corrigir, nós podemos iniciar a nossa contagem em 0, e finalizar em 4, porque aí continuaríamos a ter 4 notas registradas, e o índice da lista nota_de_provas estaria dentro do limite.
from random import randrange
nota_de_provas = []
for prova in range (0, 4): # ou também range(4)
nota_de_provas.append(randrange(1, 11))
print(f'A nota da P{prova} foi de {nota_de_provas[prova]}')
Ou também poderíamos reduzir 1 unidade no índice do print:
from random import randrange
nota_de_provas = []
for prova in range (1, 5):
nota_de_provas.append(randrange(1, 11))
print(f'A nota da P{prova} foi de {nota_de_provas[prova - 1]}')
Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!