在Python中打印一条水平线

3
我正在尝试在Python中打印一条水平线。 基本上我想打印: 实际输出: "----------" 期望输出: 但我希望'----'是连续的。 有什么建议吗?

1
请使用下划线(即“____”)而不是破折号(“---”)进行操作。虽然不是连续的,但比破折号更好。 - Djib2011
3
你的意思是要打印到控制台吗?这取决于你使用的字体,多个下划线是否连接在一起。 - couka
针对一个提问不清晰的问题,这是一个好的回答。 - joshstrike
____不好,因为它显示在行底而不是中间。 - David
3个回答

11
如果你想在终端上打印一条横跨整个终端宽度的水平线,可以使用以下命令:
import os
term_size = os.get_terminal_size()
print('=' * term_size.columns)

2
这在PyCharm中无法工作。term_size = os.get_terminal_size()会导致OSError: [WinError 6] 句柄无效 - Dženan

7

请尝试使用以下方式进行打印:

print('─' * 10)  # U+2500, Box Drawings Light Horizontal
print('─' * 10)  # U+2501, Box Drawings Heavy Horizontal
print('―' * 10)  # U+2015, Horizontal Bar
print('_' * 10)  # Underscore

输出

──────────   U+2500, Box Drawings Light Horizontal
──────────   U+2501, Box Drawings Heavy Horizontal
――――――――――   U+2015, Horizontal Bar
__________   Underscore

请查看 箱线图形字符 维基百科页面,以获取更多可用的线条


1
精确的结果将取决于控制台中使用的字体。没有一种便携式方式可以确保字形正确连接并对齐,与操作员希望的相同。 - tripleee

4
您可以尝试像下面的示例一样打印扩展ASCII字符。 这里的ASCII值 u'\u2500' 对应于没有起始和结束空格的连字符。 \u 指定以下字符串以扩展ASCII形式呈现,2500 表示 符号。
print(u'\u2500' * 10)

结果

──────────

你不需要循环;print('\u2500' * 10) - tripleee
U+2550 是一种双线条的 ═,类似于 =。 - tripleee
@tripleee 很好。我觉得对于这个问题来说,U+2500更相关。 - Swadhikar
1
我之所以评论,是因为你在2550处有一个错别字。在Python 3中,“u'...'”前缀是多余的。现在你可能还想把end=''去掉。 - tripleee
让我们在聊天中继续这个讨论 - Swadhikar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接