首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在python中对齐文本输出?

如何在python中对齐文本输出?
EN

Stack Overflow用户
提问于 2013-06-13 23:47:18
回答 5查看 42.8K关注 0票数 16

所以我有一个函数,它根据程序中其他地方收集的数据创建一个小小的星表。虽然该表生成了正确的输出,但由于每个数字中的字符数发生了变化,因此它取消了该表的对齐。例如,

代码语言:javascript
复制
70-78: *****
79-87: ***
88-96: ****
97-105: **
106-114: ******
115-123: ****

有没有办法让星星对齐(哈哈),这样输出就是这样的:

代码语言:javascript
复制
70-78:   *****
79-87:   ***
88-96:   ****
97-105:  **
106-114: ******
115-123: ****

下面是我目前打印表格的方式。

代码语言:javascript
复制
for x in range(numClasses):
    print('{0}-{1}: {2}'.format(lower[x],upper[x],"*"*num[x]))
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-06-14 01:21:30

str.format已经可以指定对齐方式。您可以使用{0:>5}来完成此操作;这将使参数0向右对齐5个字符。然后,我们可以使用相等地显示所有数字所需的最大位数来动态构建格式字符串:

代码语言:javascript
复制
>>> lower = [70, 79, 88, 97, 106, 115]
>>> upper = [78, 87, 96, 105, 114, 123]
>>> num = [5, 3, 4, 2, 6, 4]
>>> digits = len(str(max(lower + upper)))
>>> digits
3
>>> f = '{0:>%d}-{1:>%d}: {2}' % (digits, digits)
>>> f
'{0:>3}-{1:>3}: {2}'
>>> for i in range(len(num)):
        print(f.format(lower[i], upper[i], '*' * num[i]))

 70- 78: *****
 79- 87: ***
 88- 96: ****
 97-105: **
106-114: ******
115-123: ****

实际上,您甚至可以在此处使用带有嵌套字段的单一格式字符串:

代码语言:javascript
复制
>>> for i in range(len(num)):
        print('{0:>{numLength}}-{1:>{numLength}}: {2}'.format(lower[i], upper[i], '*' * num[i], numLength=digits))
票数 14
EN

Stack Overflow用户

发布于 2013-06-13 23:55:14

这应该能起到作用。我认为有一些聪明的方法。

代码语言:javascript
复制
print '70-78:'.ljust(10) + '*****'

您还可以使用expandtabs()

代码语言:javascript
复制
print ('70-78'+'\t'+ '*****').expandtabs(10)
票数 10
EN

Stack Overflow用户

发布于 2013-06-14 00:11:04

代码语言:javascript
复制
lower = [70, 79, 88, 97, 106]
upper = [78, 87, 105, 114, 123]
num = [5, 3, 4, 2, 6, 4]

for l, u, n in zip(lower, upper, num):
    print('{0:<9} {1}'.format('{0}-{1}:'.format(l, u), '*' * n))

http://docs.python.org/3/library/string.html#format-specification-mini-language

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17091446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档