I´m trying to write a code in python, that should make an arithmetic average from a numbers in list – The user inputs numbers that are converted into the list as integers, then I use for loop to count the amount of numbers in list, this I save to variable, after that I want to create another for loop that will add the numbers together so I can divide them after with a variable a mentioned before. The result should be printed.
The Code:
student_heights = input("Input a list of student heights ").split()
for n in range(0, len(student_heights)):
student_heights[n] = int(student_heights[n])
pomocna = 0
soucet = 0
pomocnaj = 0
for i in student_heights:
pomocna = 1
for j in student_heights:
if pomocnaj == 0 and j == 0:
pass
else:
soucet = soucet (student_heights[j] student_heights[pomocnaj])
pomocnaj = 1
print(soucet/pomocna)
The Error:
Input a list of student heights 123 156 189
Traceback (most recent call last):
File "main.py", line 20, in <module>
soucet = soucet (student_heights[j] student_heights[pomocnaj])
IndexError: list index out of range
I was expecting that the number on index 1 will be added up together with number on index 0 – the for loop will repeat until the end of the list, then I print the variable "soucet".
The if statement is there just to make loop run without adding the numbers together, which would be number on index 0 and number on index 0, so I made statement if pomocnaj == 0 and j == 0 pass and repeat, now j = 1 and pomocnaj equals 0 so numbers on index 1 and index 0 will be added up together.
CodePudding user response:
for j in student_heights:
This loops over the values in the list, not the indexes.
So, inside this loop where you try to access student_heights[j]
, j
is the actual height value.
So if the first height in the list was, say, 100, this code would try to access student_heights[100]
, which is the error.