我有一个坚韧的时间找到确切的措辞为我的问题,因为我是新的格式字符串。
假设我有两个变量:
customer = 'John Doe'
balance = 39.99
我想打印一行25个字符宽的行,并使用特定字符(在本例中为句点)填充两个值之间的空格:
'John Doe .......... 39.99'
因此,当我循环访问客户时,我想打印一行总是25个字符的行,他们的名字在左边,他们的余额在右边,并允许调整句号以填充其间的空间。
我可以把它分成多个步骤来完成...
customer = 'Barry Allen'
balance = 99
spaces = 23 - len(customer + str(balance))
'{} {} {}'.format(customer, '.' * spaces, balance)
# of course, this assumes that len(customer + str(balance)) is less than 23 (which is easy to work around)
.但我很好奇是否有一种更“优雅”的方式来做这件事,比如字符串格式。
这可能吗
谢谢你,谢谢
3条答案
按热度按时间8oomwypt1#
你可以在python中使用
ljust()
和rjust()
字符串对象:根据您需要的格式,您可以通过更改宽度或添加空格字符对其进行调整。
m2xkgtsf2#
如果你不想像另一个答案所建议的那样在点的两边都有空格,你也可以通过指定格式来实现:
将做17个字符宽左对齐,
.
右填充字符串和8个字符的右对齐,.
左填充,浮点精度为2个小数点。你也可以用f-string(Python >=3.6)做同样的事情:
但是,如果您还想在点的两侧包含空格,则会变得更加棘手。您仍然可以这样做,但您需要在填充差距之前进行双填充/格式化或连接:
但我会有点痛苦地称之为更优雅。
你也可以通过格式化来做到这一切:
但再一次,更优雅的是它真的不是。
iklwldmw3#
我很惊讶没有人提到f-strings;在Python版本>= 3.6中最优雅的方式