是否可以打印出现在程序中间的python语句?

时间:2014-07-31 02:31:50

标签: python-2.7

我有一个关于python语句的问题,是否可以打印语句,使它们出现在中间。我知道你可以打空格键直到单词在中间,然后打印出来,但我确信有更合理的方法。

例如,普通的print语句如下:

print ("Hello World")

这将导致输出:

Hello World

但是,我应该如何制作它,以便它像这样出现在中间:

                               Hello World

我可以在我的print语句中添加空格,但我必须注意它,它不会真正在中间。是否有功能或某种类型可以帮助我实现这个简单的打印问题?

2 个答案:

答案 0 :(得分:0)

试试这个:

import subprocess

def printcenter(s):
    cols = int(subprocess.check_output('stty size',shell=True).split()[1])
    pos = (cols-len(s))//2
    print(pos*" "+s)

这至少适用于大多数Linux发行版和OS X.它取决于" stty size"返回终端中的行和列,这可能根据您的情况不起作用:如果您不在标准shell环境中(例如,iPython笔记本或类似的东西),请告诉我们。

如果您还有其他方法可以确定列数,则可以换出cols =,代码仍然有用。

当然要注意,在shell中不一定能实现完美的居中:它取决于在字符串每一边有相同数量的空格的能力,这意味着(cols-len(s))必须是偶数。

答案 1 :(得分:-1)

这更多是评论,但我没有足够的声誉来评论:(

首先,代码中有一个小错误,结尾引号必须是双引号,或者第一个引号必须是单引号

在中间印刷;难度涉及获取控制台实例的大小,如果用户调整窗口大小,则长度将更改,文本将不再居中。如果你只对特定维度(长度方式)工作感兴趣,那么简单地获取该长度并将其除以2然后沿着这些行做一些事情:

python3

print(((length_console // 2) - (len('Hello world')// 2))*''+“Hello World”)