问题
我们需要以某种对齐方式将文本做格式化处理。
解决方案
对于基本的字符串对齐要求,可以使用字符串的ljust()、rjust()和center()方法。示例如下:
>>> text = ‘Hello World‘ >>> text.ljust(20) ‘Hello World ‘ >>> text.rjust(20) ‘ Hello World‘ >>> text.center(20) ‘ Hello World ‘ >>> Python资源分享qun 784758214,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎
所有这些方法都可接受一个可选的填充字符。例如:
>>> text.rjust(20,‘=‘) ‘=========Hello World‘ >>> text.center(20,‘*‘) ‘****Hello World*****‘ >>>
format()函数也可以用来轻松完成对齐的任务。需要做的就是合理利用‘<‘、‘>‘,或‘^‘字符以及一个期望的宽度值[2]。例如:
>>> format(text,‘>20‘) ‘ Hello World‘ >>> format(text,‘<20‘) ‘Hello World ‘ >>> format(text,‘^20‘) ‘ Hello World ‘ >>>
如果想包含空格之外的填充字符,可以在对齐字符之前指定:
>>> format(text,‘=>20s‘) ‘=========Hello World‘ >>> format(text,‘*^20s‘) ‘****Hello World*****‘ >>>
当格式化多个值时,这些格式化代码也可以用在format()方法中。例如:
>>> ‘{:>10s} {:>10s}‘.format(‘Hello‘,‘World‘) ‘ Hello World‘ >>>
format()的好处之一是它并不是特定于字符串的。它能作用于任何值,这使得它更加通用。例如,可以对数字做格式化处理:
>>> x = 1.2345 >>> format(x,‘>10‘) ‘ 1.2345‘ >>> format(x,‘^10.2f‘) ‘ 1.23 ‘
讨论
在比较老的代码中,通常会发现%操作符用来格式化文本。例如:
>>> ‘%-20s‘ % text ‘Hello World ‘ >>> ‘%20s‘ % text ‘ Hello World‘ Python资源分享qun 784758214,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎
但是在新的代码中,我们应该会更钟情于使用format()函数或方法。format()比%操作符提供的功能要强大多了。此外,format()可作用于任意类型的对象,比字符串的ljust()、rjust()以及center()方法要更加通用。