程序员对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 --