Python:字符串格式化程序获得带下划线的标题

时间:2019-03-08 14:49:20

标签: python string printing format python-3.7

要构建我的控制台输出,我想打印一些信息,我想从一个带下划线的标题开始。 但是如何在不创建额外变量的情况下很好地做到这一点呢?

现在我这样做:

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.", "-"))

谢谢:)

3 个答案:

答案 0 :(得分:1)

也许尝试使用 ANSI转义序列

class Format:
end = '\033[0m'
underline = '\033[4m'

print(Format.underline + 'Your text here' + Format.end)

它将打印带下划线的文本,对于整个ANSI escepe序列文件,请单击here

答案 1 :(得分:0)

有一个Unicode字符'\u0332',结合了低线 * ,它充当字符串中位于其前面的字符的下划线。因此,您可以尝试:

print('{:s}'.format('\u0332'.join('This is an underlined headline.')))

应该应该产生带下划线的字符串:

  

T̲h̲i̲s̲ ̲i̲s̲ ̲a̲n̲ ̲u̲n̲d̲e̲r̲l̲i̲n̲e̲d̲ ̲h̲e̲a̲d̲l̲i̲n̲e̲。

但是,输出的外观可能取决于呈现输出的应用程序及其使用的字体。我的浏览器生成带下划线的字符串,我的(Linux)终端在显示该字符串时,好像每个字符后面都有下划线一样。

* 还有'\u0333',组合双下划线,用于双下划线。

答案 2 :(得分:0)

如果您想为字符添加下划线,我们可以使用它。

print("\u0332".join("This is underline Text "))
text = "This is underline Text"
print("\u0332".join(text))
text = "This is underline Text "
print("\u0332".join(text))
  

输出

T̲h̲i̲s̲ ̲i̲s̲ ̲u̲n̲d̲e̲r̲l̲i̲n̲e̲ ̲T̲e̲x̲t̲ 
T̲h̲i̲s̲ ̲i̲s̲ ̲u̲n̲d̲e̲r̲l̲i̲n̲e̲ ̲T̲e̲x̲t
T̲h̲i̲s̲ ̲i̲s̲ ̲u̲n̲d̲e̲r̲l̲i̲n̲e̲ ̲T̲e̲x̲t̲