我正在尝试格式化字符串,所以一切都在两者之间排列.
APPLES $.99 214
kiwi $1.09 755
Run Code Online (Sandbox Code Playgroud)
我这样做是通过这样做:
fmt = ('{0:30}{1:30}{2:30}'.format(Fruit,price,qty))
Run Code Online (Sandbox Code Playgroud)
如何排列一列?我阅读了文档,但我很困惑.我以为它{1:30}会使它成为30个空格,然后它会打印下一个项目,但它看起来是前一个项目结束的30个空格.
谢谢
Ste*_*ski 38
str.format()使您的字段在可用空间内保持对齐.使用对齐说明符更改对齐方式:
'<'强制字段在可用空间内左对齐(这是大多数对象的默认值).
'>'强制字段在可用空间内右对齐(这是数字的默认值).
'='强制将填充放置在符号(如果有)之后但在数字之前.这用于以"+000000120"形式打印字段.此对齐选项仅对数字类型有效.
'^'强制字段在可用空间内居中.
这是一个示例(左对齐和右对齐):
>>> for args in (('apple', '$1.09', '80'), ('truffle', '$58.01', '2')):
... print '{0:<10} {1:>8} {2:>8}'.format(*args)
...
apple $1.09 80
truffle $58.01 2
Run Code Online (Sandbox Code Playgroud)
使用 python3 f-strings (不是你的例子,而是我的):
alist = ["psi", "phi", "omg", "chi1", "chi2", "chi3", "chi4", "chi5", "tau"]
for ar in alist:
print(f"{ar: >8}", end=" ")
print()
for ar in alist:
ang = ric.get_angle(ar)
print(f"{ang:8.4}", end=" ")
print()
Run Code Online (Sandbox Code Playgroud)
产生
psi phi omg chi1 chi2 chi3 chi4 chi5 tau
4.574 -85.28 178.1 -62.86 -65.01 -177.0 80.83 8.611 115.3
Run Code Online (Sandbox Code Playgroud)