是否可以将打印语句与 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 中的中心对齐?的主要内容,如果未能解决你的问题,请参考以下文章