print等宽多行打印输出

2019年12月4日 / 6次阅读 / Last Modified 2019年12月4日
内置函数

程序员对print函数再熟悉不过了,这个函数实现了向stdout输出信息,程序运行过程,以及调试过程,都大量的使用print函数实现各类信息的输出。

本文介绍一个小技巧,通过在%s增加参数的方式,实现等宽多行打印输出,这会让你的程序在打印层面看起来高级那么一点点。(本文作为用%格式化Python字符串的补充)

我们通过如下这种兼容性最好的方式(%)来拼装字符串:

>>> a = 'www.pynote.net'
>>> 'This is %s' % a
'This is www.pynote.net'

%s可以带参数:

>>> 'This is %20s by maixj.net' % a
'This is       www.pynote.net by maixj.net'
>>> 'This is %-20s by maixj.net' % a
'This is www.pynote.net       by maixj.net'

就用这种方式来输入等宽字符串:

>>> for i in range(0,100,8):
...     print('%10s:' % str(i), 'Yes')
...
         0: Yes
         8: Yes
        16: Yes
        24: Yes
        32: Yes
        40: Yes
        48: Yes
        56: Yes
        64: Yes
        72: Yes
        80: Yes
        88: Yes
        96: Yes
>>> for i in range(0,100,8):
...     print('%-10s:' % str(i), 'Yes')
...
0         : Yes
8         : Yes
16        : Yes
24        : Yes
32        : Yes
40        : Yes
48        : Yes
56        : Yes
64        : Yes
72        : Yes
80        : Yes
88        : Yes
96        : Yes

看起来是不是很舒服!:)

不过,这个小技巧在有中文的时候,会有点问题。因为一个中文占2个英文字符的位置,如果计算准确的话,这个等宽字符串输出的技巧,还是可以使用的。

>>> '%10s' % '人生123'
'     人生123'
>>> '%12s' % 'abcd123'
'     abcd123'

-- EOF --

本文链接:https://www.pynote.net/archives/1571

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top