要构建我的控制台输出,我想打印一些信息,我想从一个带下划线的标题开始。 但是如何在不创建额外变量的情况下很好地做到这一点呢?
现在我这样做:
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.", "-"))
谢谢:)
答案 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̲