天天看点

python中格式化字符串_python中的字符串的格式化

字符串格式化用于解决字符串和变量同时输出时的格式安排。Python中有str.format(),format()和%三种格式控制的方法,但主要采用str.format()方法进行字符串的格式化。

一,str.format()方法

str.format()方法的基本使用格式:

.format()

其中模板字符串是由一系列的槽({})组成,用来控制修改字符串中嵌入值出现的位置,基本思路:将str.format()方法中逗号分隔的参数按照序号关系替换到模板字符串的槽中,槽用大括号({})来表示,如果大括号中没有序号,则按照出现顺序替换。

>>> "{}博客".format("志颖")

'志颖博客'

>>> "{2}博客 专注于{3}和{1}{0}".format("前端", "web", "志颖", "Python爬虫")

'志颖博客 专注于Python爬虫和web前端'

注意:序号是从0开始,而不是1。

槽的内部格式:

{:}

格式控制标记是用来控制参数显示时的格式,它的格式:

: <.>

::引导符号

:用于填充的单个字符

:右对齐,^居中

:槽的设定输出宽度

:英文状态下的逗号,数字的千分位分隔符,适用于整数和浮点数

<.>:浮点数小数部分的精度

:整数类型b,c,d,o,x,X,浮点数类型e,E,f,%

下面来看几个例子:

>>> s = "志颖博客"

>>> "{0:10}".format(s) # 默认左对齐

'志颖博客 '

>>> "{0:*^20}".format(s) # 居中对齐,*填充

'********志颖博客********'

<.>有两个含义,由小数开头。对于浮点数,精度表示小数部分输出的有效位数。对于字符串,精度表示输出的最大长度。带有小数点的数字(类型里未用f标识带有小数点的数字),精度表示保留几位有效数字。

>>> '{:.3}'.format(9.0807776)

'9.08'

>>> '{:.3f}'.format(9.0807776)

'9.081'

>>> '{:.3}'.format('9.0807776')

'9.0'

表示输出整数和浮点数类型的格式规则。

整数类型输出格式有6种:

b:输出整数的二进制形式。

c:输出整数对应的Unicode字符。

d:输出整数的十进制形式。

o:输出整数的八进制形式。

x:输出整数的小写十六进制形式。

X:输出整数的大写十六进制形式。

浮点数类型输出格式有4种:

e:输出浮点数对应的小写字母e的指数形式。

E:输出浮点数对应的小写字母e的指数形式。

f:输出浮点数的标准浮点形式。

%:输出浮点数的百分形式。

二,format方法

在控制台利用help命令查看一下它的帮助文档。

>>> help(format)

Help on built-in function format in module builtins:

format(value, format_spec='', /)

Return value.__format__(format_spec)

format_spec defaults to the empty string

format()方法和str.format()方法用法差不多,只不过,format()方法中槽的内部只有格式控制标记,没有参数序号和引导符号。其中value是需要输出的字符串,format_spec是格式控制标记。

>>> format('aksfhakefhk','<20')

'aksfhakefhk '

>>> format('aksfhakefhk',':<20')

'aksfhakefhk:::::::::'

>>> format('lfajlajl', '*>30') # 右对齐,填充*

'**********************lfajlajl'

>>> a = 9.000778468

>>> format(a, '.4f')

'9.0008'

三,%方法

%方法类似于C语言中的格式化控制符,%s表示格式化为字符串,%d表示格式化为数字。

>>> print('%s专注于Python爬虫和web前端'%'志颖博客')

志颖博客专注于Python爬虫和web前端

>>> print('今天是%d年%d月%d日'%(2018,10,11))

今天是2018年10月11日

这三种方法虽然都能起格式化字符串的作用,但我还是推荐使用第一种方法。

喜欢 (3)or分享 (0)