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]) total_height =0 for i in student_heights: total_height += i print(total_height)
Advertisement
Answer
the default behaviour of split()
is to split by whitespace. You code would not throw errors if the input only contained numbers and whitespaces, e.g. 156 178 165 171 187
.
If you want a different split seperator, e.g. the comma ,
, you could use split(",")
instead.
Valid input would be e.g. 156,178,165,171,187
.
Note that [156,178,165,171,187]
is not valid input. It would split the string only at the comma, resulting in the first element to be equal to [156
, clearly not a valid number.
If you want to skip the input step and use a list instead, replace:
student_heights = input("Input a list of student heights ").split()
with:
student_heights = [156,178,165,171,187]
If you realy need to pass [156,178,165,171,187]
as an input, you could also use literal_eval
to convert it to a list. Don’t forget to import
the required module:
from ast import literal_eval student_heights = literal_eval(input("Input a list of student heights ")) for n in range(0, len(student_heights)): student_heights[n] = int(student_heights[n]) total_height =0 for i in student_heights: total_height += i print(total_height)