Так что это, вероятно, очень простой вопрос о форматировании вывода в python с использованием .format, и поскольку я новичок, я не могу понять это для жизни меня. Я старался быть настолько подробным, насколько это возможно, просто чтобы убедиться, что нет путаницы.Форматирование вывода Python 3.3
Позвольте привести пример, чтобы вы могли лучше понять мою дилемму. Рассмотрим следующую программу
list = (['wer', 'werwe', 'werwe' ,'wer we']) # list[0], list[1], list[2], list[3]
list.append(['vbcv', 'cvnc', 'bnfhn', 'mjyh']) # list[4]
list.append(['yth', 'rnhn', 'mjyu', 'mujym']) # list[5]
list.append(['cxzz', 'bncz', 'nhrt', 'qweq']) # list[6]
first = 'bill'
last = 'gates'
print ('{:10} {:10} {:10} {:10}'.format(first,last,list[5], list[6]))
Вполне понятно, что дало бы выход:
bill gates ['yth', 'rnhn', 'mjyu', 'mujym'] ['cxzz', 'bncz', 'nhrt', 'qweq']
Так вот мой вопрос. Я делал эту проблему из книги, и я не понимаю ответа. Программа ниже даст вам хорошее представление о том, какой вывод мы будем для:
students = []
students.append(['DeMoines', 'Jim', 'Sophomore', 3.45]) #students[0]
students.append(['Pierre', 'Sophie', 'Sophomore', 4.0]) #students[1]
students.append(['Columbus', 'Maria', 'Senior', 2.5]) #students[2]
students.append(['Phoenix', 'River', 'Junior', 2.45]) #students[3]
students.append(['Olympis', 'Edgar', 'Junior', 3.99]) #students[4]
students.append(['van','john', 'junior', 3.56]) #students[5]
def Grades(students):
print ('Last First Standing GPA')
for students in students:
print('{0:10} {1:10} {2:10} {3:8.2f}'.format(students[0],students[1],students[2],students[3]))
выход мы пытаемся получить это своего рода таблицу, которая дает все статистику для всех студентов -
Last First Standing GPA
DeMoines Jim Sophomore 3.45
Pierre Sophie Sophomore 4.00
Columbus Maria Senior 2.50
Phoenix River Junior 2.45
Olympis Edgar Junior 3.99
van john junior 3.56
Так вот что я не понимаю. Мы работаем в основном с одним и тем же в двух примерах, то есть в списке внутри списка. Для моего первого примера, оператор печати был:
print('{:10} {:10} {:10} {:10}'.format(first, last, list[5], list[6]))
где list[5]
и list[6]
являются списками и сами они напечатаны в полном объеме, как вы можете видеть на выходе. Но этого не происходит в книге проблема. Там, оператор печати говорит
print('{0:10} {1:10} {2:10} {3:8.2f}'.format(students[0], students[1], students[2], students[3]))
Как видно из таблицы вывода, здесь students[0]
относится только к «DeMoines». Но если вы просто запустите оператор students[0]
в интерпретаторе Python, он даст весь список подписок, как и должно быть.
['DeMoines', 'Jim', 'Sophomore', 3.45]
Так, в принципе, у меня есть два вопроса, почему students[0]
имеет два разных значения, и почему students[0]
не печатает весь список, как мы делали с list[5]
и list[6]
?
Если я могу предложить предложение: попробуйте сократить свои примеры и прояснить постановку проблемы. Вы получите больше внимания, если ваши вопросы будут более точными. – cfi
Я буду помнить об этом. Благодарю. – Kye