是否可以将打印语句与 Python 中的中心对齐?

Posted

技术标签:

【中文标题】是否可以将打印语句与 Python 中的中心对齐?【英文标题】:Is it possible to align a print statement to the center in Python? 【发布时间】:2016-02-09 06:18:14 【问题描述】:

我想知道是否可以在 Python(最新版本)中对齐打印语句。例如:

print ("hello world")

会出现在左侧的用户屏幕上,所以我可以让它居中对齐吗?

非常感谢您的帮助!

= 80(列)x 30(宽度)

【问题讨论】:

可能取决于控制台 docs.python.org/2/library/stdtypes.html#str.center 如果你知道控制台的宽度。 print (":>30".format("hello world")) 【参考方案1】:

首先,使用os.get_terminal_size() 函数获取控制台的宽度(因此您之前不需要知道您的控制台):

>>> import os
>>> os.get_terminal_size()
os.terminal_size(columns=80, lines=24)
>>> os.get_terminal_size().columns
80
>>> os.get_terminal_size().columns  # after I changed my console's width
97
>>> 

那么,我们可以使用str.center()

>>> import os
>>> print("hello world".center(os.get_terminal_size().columns))
                                  hello world                                  
>>> 

所以清晰的代码看起来像:

import os

width = os.get_terminal_size().columns
print("hello world".center(width))

【讨论】:

如果你想使用 Python 来做到这一点,答案是 No。因为 Python 在控制台中运行。 @KtEwing 您的意思是独立于实际控制台大小指定控制台大小吗? 如果你想那样做,那我不​​知道。但这会很有趣。 在linux上,你可以调用wmctrl来设置终端窗口的大小和位置(不是python命令,而是一个单独的程序,但你可以用subprocess之类的东西来调用它) @KtEwing 只需将 width = os.get_terminal_size().columns 替换为 width = 50 或您想要的任何宽度值【参考方案2】:

知道控制台宽度,你也可以使用format居中打印:

 # console width is 50 
 print ": ^50s".format("foo")

将在 50 列控制台的中间打印“foo”。

【讨论】:

在 Python 3.6+ 中,您可以使用 f 字符串:print(f": ^50s")

以上是关于是否可以将打印语句与 Python 中的中心对齐?的主要内容,如果未能解决你的问题,请参考以下文章

如何将文本与 QTableWidget 中的单元格中心对齐

如何将文本与 QTableWidget 中的单元格中心对齐

如何将文本与QTableWidget中的单元格中心对齐

iOS自动布局:将UILabel的左边缘与容器中的水平中心对齐?

将元素与每个弹性框的中心底部对齐[重复]

如何将括号与它们包含的代码对齐?