2024-04-19 22:12:53 发布
网友
我在网上找不到真正有用的东西,所以我想问问自己。我有以下代码:
username = input() username = username.capitalize() print("Hello " + username ) # I want this to be centered
我希望print语句集中在运行它的任何控制台上。谢谢你的帮助!在
您可以使用os.get_terminal_size().columns来获取终端中的列数,然后打印必要的空格以使文本居中:
os.get_terminal_size().columns
import os def print_centre(s): print(' ' * ((os.get_terminal_size().columns - len(s))//2) + s)
{a1}
一些改进(如abarner指出的):
shutil.get_terminal_size
os.get_terminal_size
s.center(...)
这提供了一个更简洁的解决方案:
这有两个部分。在
你需要先得到控制台的宽度。你用^{}来做这个。在
由于不可能总是获得控制台宽度,因此可能连都没有一个(例如,如果程序的标准输出被重定向到一个文件,甚至没有终端),它将回落到80列(尽管您可以根据需要覆盖它):
cols, rows = shutil.get_terminal_size()
现在你只要^{}这个宽度的字符串。字符串包含用户输入并不重要。一旦连接了"Hello "和username,就得到了一个与任何其他字符串对象工作方式相同的str。所以:
"Hello "
username
str
如果用户的输入可能太长而无法容纳在一行中,则需要先将其换行,然后将行居中。您可以使用^{}模块:
for line in textwrap.wrap("Hello " + username, cols): print(line.center(cols))
您可以使用
os.get_terminal_size().columns
来获取终端中的列数,然后打印必要的空格以使文本居中:{a1}
一些改进(如abarner指出的):
shutil.get_terminal_size
比os.get_terminal_size
更可靠。在s.center(...)
来提高可读性。在这提供了一个更简洁的解决方案:
^{pr2}$这有两个部分。在
你需要先得到控制台的宽度。你用^{} 来做这个。在
由于不可能总是获得控制台宽度,因此可能连都没有一个(例如,如果程序的标准输出被重定向到一个文件,甚至没有终端),它将回落到80列(尽管您可以根据需要覆盖它):
现在你只要^{} 这个宽度的字符串。字符串包含用户输入并不重要。一旦连接了
^{pr2}$"Hello "
和username
,就得到了一个与任何其他字符串对象工作方式相同的str
。所以:如果用户的输入可能太长而无法容纳在一行中,则需要先将其换行,然后将行居中。您可以使用^{} 模块:
相关问题 更多 >
编程相关推荐