Я пытаюсь получить мои выходные данные выглядят следующим образом:Python: Равномерно выходные данные пространства с различной длиной строки
-------------------------------------------------------
Grade Report for Programs
-------------------------------------------------------
Jacobson, Mark 19.0 <--- 20,17,20
Snurd, Mortimur 16.5 <--- 20,19,18,17,16,15,14,13
Luxemburg, Rosa 15.0 <--- 18,15,20,10,12
Atanasoff, John 20.0 <--- 20,20,20,20,20,20,20
Hopper, Grace 20.0 <--- 20,20,20,20,20,20
-------------------------------------------------------
Но я не знаю, как иметь дело с различной длины имени. В настоящее время мой вывод выглядит следующим образом.
Grade Report for Programs
-------------------------------------------------------
Jacobson, Mark 19.0 <--- 20,17,20
Snurd, Mortimur 16.5 <--- 20,19,18,17,16,15,14,13
Luxemburg, Rosa 15.0 <--- 18,15,20,10,12
Atanasoff, John 20.0 <--- 20,20,20,20,20,20,20
Hopper, Grace 20.0 <--- 20,20,20,20,20,20
-------------------------------------------------------
Программа я написал взять входной файл баллов классов и собирать данные и аккуратно распечатать в среднем.
Входной файл выглядит примерно так:
Mark Jacobson,20,17,20
Mortimur Snurd,20,19,18,17,16,15,14,13
Rosa Luxemburg,18,15,20,10,12
John Atanasoff,20,20,20,20,20,20,20
Grace Hopper,20,20,20,20,20,20
И вот мой код, который собирает имя и результаты, и выводит данные с фамилией, именем, средним баллом, то фактическими оценок что привело к среднему.
file = input("Enter filename: ")
grade_file = open(file, 'r')
print()
print('---------------------------------------------------------')
print('\t\tGrade Report for Programs')
print('---------------------------------------------------------')
for text in grade_file:
end_of_name = text.find(',')
name_seperated = text.find(' ')
first_name = text[0:name_seperated]
last_name = text[name_seperated+1:end_of_name]
name_last_first = last_name + "," + " " + first_name
grades = text[end_of_name+1:]
start = 0
index = 0
sum_n = 0
average= 0
score = 0
count = 0
while index < len(grades):
if grades[index] == ',':
score = int(grades[start:index])
count += 1
sum_n = score + sum_n
start = index + 1
index += 1
count += 1
score = int(grades[start:index])
sum_n = score + sum_n
average = sum_n/count
print(name_last_first, " ", average, "<---", grades)
print('---------------------------------------------------------')
grade_file.close()
Мне просто нужно выяснить, как иметь даже пробелы, чтобы он делал четный ряд и столбец, как первый выход. Помощь очень ценится! Благодаря!
Спасибо за быструю и хорошо описанную обратную связь! Это сделало именно то, что я хотел! Что касается модуля csv, я обязательно посмотрю на это! Просто это было для присвоения класса и помочь нам понять, что мы рассмотрели в классе, учитель любит, чтобы мы использовали вещи, которые мы уже изучили!Мы также пытались найти способ прочитать наш собственный код csv без использования модуля csv! Но спасибо вам за объяснение! – Alik