【发布时间】:2019-07-30 15:06:12
【问题描述】:
为了构造我的控制台输出,我想打印一些信息,我想从一个带下划线的标题开始。 但是如何在不创建额外变量的情况下很好地做到这一点呢?
现在我是这样做的:
print("{:s}\n{:s}\n".format("This is an underlined headline.", len("This is an underlined headline.") * "-"))
什么给了我想要的输出:
This is an underlined headline.
-------------------------------
但是那个代码很糟糕。有没有更好的格式字符串来实现这一点?
print("{0:s}\n?????\n".format("This is an underlined headline.", "-"))
谢谢你:)
【问题讨论】:
-
你所拥有的对我来说并不那么冗长,特别是如果你存储字符串,例如
s = "This is an underlined headline."; print('{}\n{}'.format(s, len(s)*'-')) -
正如@Chris_Rands 提到的,它并不是那么冗长。您可以调用 print 两次以使其更具可读性,但这需要变量存储,这也没什么大不了的
-
是的,但是为 1 次打印创建一个新变量?如果我有 5 个部分,那么我需要 5 个新变量怎么办?我希望有更好的东西。
-
@Max16hr 如果你想做同样的事情 5 次,写一个函数。
-
如果您不想创建其他名称,请使用
print((lambda s: '%s\n%s' % (s, '-' * len(s)))("This is an underlined headline."))
标签: python string printing format python-3.7