【发布时间】:2013-05-24 18:56:15
【问题描述】:
所以这可能是关于在 python 中使用 '.format' 进行输出格式化的一个非常基本的问题,而且由于我是初学者,我无法终生解决这个问题。我试图尽可能详细,以确保没有混淆。
让我给你一个例子,这样你就可以更好地理解我的困境。考虑以下程序
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'。但是,如果您只是在 Python 解释器中运行语句 students[0],它会给出整个子列表,因为它应该。
['DeMoines', 'Jim', 'Sophomore', 3.45]
所以,基本上,我有两个问题,为什么students[0] 有两种不同的含义,为什么students[0] 不像我们对list[5] 和list[6] 那样打印整个列表?
【问题讨论】:
-
如果我可以提供一个建议:尝试缩短您的示例并澄清问题陈述。如果你的问题更中肯,你会得到更多的关注。
-
我会记住这一点。谢谢。
标签: python python-3.x output-formatting