[RESOLVIDO] Python - Como definir o tamanho do array sem que ele seja contado como um item do array

Oi Pessoal, gostaria perguntar se alguem sabe como eu poderia fazer para definir um valor X(usuario digita) para o meu array sem que esse numero seja considerando como primeiroitem (sccore[0]) do meu arra. No exemplo de saida defini um array com 6 posicoes e na ultima linha eu imprimi meu array. O numero “6” aparace na primeira posicao.

Vou deixar o meu codigo:

numberStudents = int(input('Enter a number of student: '))
#numero de estudantes (que sera definido como tamanho do meu array)
score = [numberStudents]
bestScore = score[0]

for i in range(numberStudents): # Crio um array com o tamannho definido pela variavel (numberStudents)
scoreStudent = int(input(f’Enter score of student {i+1}: ‘))
score.append(scoreStudent)
if score[i] > bestScore:
bestScore = score[i]
print(f’Best Score is: {bestScore}’)

for i in range(1,7):
if score[i] >= bestScore-10:
grade = ‘A’
elif score[i] >= bestScore -20:
grade = ‘B’
elif score[i] >= bestScore - 30:
grade = ‘C’
elif score[i] >= bestScore - 40:
grade = ‘D’
else:
grade = ‘F’
print(F’Student {i} is {score[i]} and grade is {grade}’)
print(score)

SAIDA:
Enter a number of student: 6
Enter score of student 1: 40
Enter score of student 2: 80
Enter score of student 3: 60
Enter score of student 4: 50
Enter score of student 5: 25
Enter score of student 6: 38
Best Score is: 80
Student 1 is 40 and grade is D
Student 2 is 80 and grade is A
Student 3 is 60 and grade is B
Student 4 is 50 and grade is C
Student 5 is 25 and grade is F
Student 6 is 38 and grade is F
[6, 40, 80, 60, 50, 25, 38]

Obrigada! :wink:

Process finished with exit code 0

No Python você não precisa definir o tamanho do vetor!

Então seu erro está nesta linha. Aqui você não definiu o tamanho do vetor, mas sim atribuiu um valor a ele, no caso 6! Nesse momento seu array era [6]!

score = [numberStudents] # Crio um array com o tamannho definido pela variavel (numberStudents)
bestScore = score[0]

O correto seria apenas criar um vetor vazio:
Obs: você também tem que trocar a linha bestScore = score[0], já que o vetor está vazio!

score = [] # Crio um  array vazio
bestScore = 0 #Acho que o valor apropriado é 0!

O método append adiciona um novo elemento no final da lista e não altera os elementos já presente. Ok!

Outra coisa! Use o método len() para pegar o tamanho atual do vetor nesta linha:

#Em vez de colar 1 a 7
for i in range(0,len(score)):
   if score[i] >= bestScore-10:
   grade = ‘A’
   elif score[i] >= bestScore -20:
   [...]
2 curtidas

Ola Jelson1! Nossa valeu mesmo deu certo, fiz as auteracoes que voce sugeriu. Eu tinha ate chegado a atribuir o bestScore = 0, mas nao tinha funcionado dava erro. Mas nao cheguei a usar: for i in range(0,len(score)):. Esse exercicio e de uma aula de python.

Obrigada :slight_smile:

Fiz os testes, realmente quando uso for i in range(1,7): e bestScore =0
O Python me da o erro: Traceback (most recent call last):
line 20, in
if score[i] >= bestScore-10:
IndexError: list index out of range

Como diz a mensagem, esse erro acontece quando você está passando um índice fora dos limites do vetor.
Tipo:

#Um vetor com 6 elemento
#Então os índices vão de 0 a 5
meuVetor = [1,2,3,4,5,6]

#Quando eu faço isso, o i varia de 1 a 6, excedendo o
#limite do vetor que vai de 0 a 5
for i in range(1,7)
        meuVetor[i] #quando meu i for 6 vai ser lançado um erro
1 curtida