为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

三国纷争 2021-11-30 16:21:45
为了构建我的控制台输出,我想打印一些信息,我想从一个带下划线的标题开始。但是如何在不创建额外变量的情况下很好地做到这一点?现在我这样做: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.", "-"))谢谢 :)
查看完整描述

2 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

也许尝试使用ANSI 转义序列


class Format:

    end = '\033[0m'

    underline = '\033[4m'


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

它将打印出带下划线的文本,对于整个 ANSI 转义序列文档,请单击此处


查看完整回答
反对 回复 2021-11-30
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

有一个 Unicode 字符'\u0332'COMBINING LOW LINE *,它充当字符串中位于它前面的字符的下划线。所以你可以试试:

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', COMBINING DOUBLE LOW LINE,用于双下划线。


查看完整回答
反对 回复 2021-11-30
  • 2 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信