Python进阶编程:编写更高效、优雅的Python代码
上QQ阅读APP看书,第一时间看更新

2.2.4 字符串对齐

Word文档提供了类似左对齐、右对齐、居中等便捷操作功能,可以将文本快速以指定格式对齐。Python也提供了字符串对齐的便捷方法。

对于基本的字符串对齐操作,我们可以使用字符串的ljust()、rjust()和center()方法,相关代码(str_alignment.py)示例如下:


text_str = 'Hello World'
print(text_str.ljust(20))
print(text_str.rjust(20))
print(text_str.center(20))

执行py文件,输出结果如下:


Hello World
         Hello World
    Hello World

这些方法也能接收一个可选的填充字符,相关代码(str_alignment.py)示例如下:


print(text_str.rjust(20,'='))
print(text_str.center(20, '*'))

执行py文件,输出结果如下:


=========Hello World
****Hello World*****

对于Python3.8之后的版本,我们可以使用f前缀方便地格式化字符串。对于对齐操作,可以用“<”“>”或者“^”字符后面紧跟一个指定的宽度实现,代码示例如下:


print(f'{text_str:>20}')
print(f'{text_str:<20}')
print(f'{text_str:^20}')

如果要指定一个非空格的填充字符,将它写到对齐字符的前面即可,代码示例如下:


print(f'{text_str:=>20}')
print(f'{text_str:*^20}')

针对格式化多个值,代码示例如下:


print(f'{"hello":>10s} {"world":>10s}')

针对格式化数字,代码示例如下:


num = 1.2345
print(f'{num:>10}')
print(f'{num:^5.2f}')

在Python3.8之前版本的代码中,我们经常会看到被用来格式化文本的%操作符及format()函数。

在新版本代码中,我们应该优先选择f前缀或format()函数。format()函数要比%操作符的功能更为强大。f前缀和format()函数比ljust()、rjust()或center()方法更通用,f前缀和format()函数可以用来格式化任意对象,而不仅仅是字符串。