format格式化函数
2018-12-07 本文已影响0人
SimonJoe246
Usage:
自 python2.6 开始,新增了一种格式化字符串的方法,增强了格式化字符串的功能。
基本用法是以 {}
和 :
代替以前的 %
可以接收不限个数的参数,位置可以不按顺序。
>>> s = '{1} {2} {0} {1}'.format('a', 'b', 'c')
>>> s
'b c a b'
>>> '{} {}'.format('hello', 'world')
'hello world'
# 也可设置参数
>>> '{name} {url}'.format(name='simon', url='simonjoe246.github.io')
'simon simonjoe246.github.io'
# 也可通过字典设置参数
>>> s = dict(name='simon', url='simonjoe246.github.io')
>>> '{name} {url}'.format(**s)
'simon simonjoe246.github.io'
# 通过列表索引设置参数
>>> l = ['simon', 'simonjoe246.github.io']
>>> '名字{0[0]} 网址{0[1]}'.format(l)
'名字simon 网址simonjoe246.github.io'
# 当然也可向format传入类对象,前面调用对象属性。
格式化数字
[图片上传失败...(image-1d549a-1544191403090)]
>>> '{:.2f}'.format(3.1415926)
'3.14'
>>> '{:4.2f}'.format(3.1415926)
'3.14'
>>> '{:5.2f}'.format(3.1415926)
' 3.14'
冒号后面大概可以分为四部分内容:
一、
:
后紧接要填充的字符,
二、
对齐标识符(align sign),一般后接数字表示字符串宽度(放在第三部分讲),如果不接数字无意义,默认为右对齐。
^
:居中
<
:左对齐
>
:右对齐
三、
带符号,字符串宽度,保留几位小数
+
:表示正数前加+
号,负数前加-
号
5
: 数字表示字符串总宽度,与对齐标识符联用,一般可以省略d
.2f
表示保留几位小数(如上所示,小数点也占一位宽度)
四、
进制转换,若 format 内容为整数,可以使用 b
、d
、o
、x
、X
分别表示二进制、十进制、八进制、小写十六进制、大写十六进制
实例:
>>> '{:2^16}'.format(4)
'2222222422222222'
>>> '{:x^+16.2f}'.format(-4.2545845)
'xxxxx-4.25xxxxxx'
>>> '{:x^+16x}'.format(-456)
'xxxxxx-1c8xxxxxx'