问题
通过某种对齐方式来格式化字符串
解决方案
对于基本的字符串对齐操作,可以使用字符串的 ljust()、rjust() 和 center() 方法。比如:
text = 'Hello World'
print(text.ljust(20))
print(text.rjust(20))
print(text.center(20))
Hello World
Hello World
Hello World
这些方法都能接受一个可选的填充字符。比如:
text = 'Hello World'
print(text.center(20, '-'))
print(text.rjust(20, '*'))
----Hello World-----
*********Hello World
函数 format() 同样可以用来对齐字符串,使用 <、>、^符号,分别表示居中、左对齐、右对齐,后面紧跟填充的宽度。比如:
text = 'Hello World'
print(format(text, '<20'))
print(format(text, '>20'))
print(format(text, '^20'))
Hello World
Hello World
Hello World
如果需要指定一个非空格的填充字符,将它写到对齐字符的前面即可:
text = 'Hello World'
print(format(text, '-^20'))
print(format(text, '*>20'))
----Hello World-----
*********Hello World
函数format()可以同时格式化多个值,冒号(:) 后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。比如:
print('{:>10} {:>10}'.format('Hello', 'World'))
print('{:->10} {:->10}'.format('Hello', 'World'))
Hello World
-----Hello -----World
函数format()的一个好处是它不仅适用于字符串格式化,可以用来格式化任何值,非常通用。 比如:
x = 3.1415
print(format(x, '-^20'))
-------3.1415-------
讨论
在老的代码中,经常会看到被用来格式化文本的 % 操作符。在新版本代码中,应该优先选择 format() 函数。