Skip to main content
 首页 » 编程设计

python之如何在 input() 之后将 python 3 中的文本居中

2025年05月04日22davidwang456

我真的无法在网上找到任何真正有用的东西,所以我想问问自己。我有以下代码:

username = input() 
username = username.capitalize() 
print("Hello " + username ) # I want this to be centered  

我希望打印语句以运行它的任何控制台为中心。感谢您的帮助!

请您参考如下方法:

这有两个部分。


首先,您需要获取控制台宽度。你用 shutil.get_terminal_size 做到这一点.

由于并非总能获得控制台宽度 — 就此而言,可能甚至都没有(例如,如果您的程序的标准输出被重定向到一个文件并且没有甚至有一个终端),它将回退到 80 列(尽管您可以根据需要覆盖它):

cols, rows = shutil.get_terminal_size() 

现在你只是center该宽度的字符串。该字符串包含用户输入的事实并不重要。连接 "Hello " 和 username 后,您将获得一个与任何其他字符串对象一样工作的 str。所以:

print(("Hello " + username).center(cols)) 

如果用户的输入可能太长而无法放在一行中,您需要先将其换行,然后将行居中。您可以使用 textwrap模块:

for line in textwrap.wrap("Hello " + username, cols): 
    print(line.center(cols))