解决Python对齐文本字符串问题

yipeiwu_com6年前Python基础

问题

我们需要以某种对齐方式将文本做格式化处理。

解决方案

对于基本的字符串对齐要求,可以使用字符串的ljust()、rjust()和center()方法。示例如下:

>>> text = 'Hello World'
>>> text.ljust(20)
'Hello World '
>>> text.rjust(20)
'   Hello World'
>>> text.center(20)
'  Hello World '
>>>

所有这些方法都可接受一个可选的填充字符。例如:

>>> 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'

但是在新的代码中,我们应该会更钟情于使用format()函数或方法。format()比%操作符提供的功能要强大多了。此外,format()可作用于任意类型的对象,比字符串的ljust()、rjust()以及center()方法要更加通用。

总结

以上所述是小编给大家介绍的解决Python对齐文本字符串问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

利用django如何解析用户上传的excel文件

前言 我们在工作中的时候,会有这种需求:用户上传一个格式固定excel表格到网站上,然后程序负债解析内容并进行处理。我最近在工作中就遇到了,所以想着将解决的过程总结分享出来,方便大家参考...

Python之文字转图片方法

Python之文字转图片方法

Pygame模块一览表: 引入pygame模块 ,若本机没有请自行pip install pygame #载入必要的模块 import pygame #pygame初始化 pyga...

python实现监控阿里云账户余额功能

python实现监控阿里云账户余额功能

背景 由于阿里云oss,cdn消耗钱的速度比较快,在不知道的情况下,服务就被停了,影响比较大。所以想做个监控。百度一下阿里云账户余额 api 还真有;于是开启了踩坑之路。 查阅资料创建a...

python 统计一个列表当中的每一个元素出现了多少次的方法

如下所示: #coding=utf-8 #方式一 print('*'*20 + '方式一' + '*'*20) li1 = [1,2,2,3,3,3,4,4,4,4,5,5,5,5,...

python分布式环境下的限流器的示例

项目中用到了限流,受限于一些实现方式上的东西,手撕了一个简单的服务端限流器。 服务端限流和客户端限流的区别,简单来说就是: 1)服务端限流 对接口请求进行限流,限制的是单位时间内请求的数...