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!