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!
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
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