字符串格式化输出
format方式
格式
[[fill]align][sign][#][0][width][,][.precision][type]
参数
-
fill
【可选】空白处填充的字符 align
【可选】对齐方式(需配合width使用)
-
<
,内容左对齐 -
>
,内容右对齐(默认) -
=
,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字 -
^
内容居中
sign
【可选】有无符号数字
-
+
,正号加正,负号加负; -
-
,正号不变,负号加负; -
空格
,正号空格,负号加负;
-
#
【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示 -
,
【可选】为数字添加分隔符,如:1,000,000 -
width
【可选】格式化位所占宽度 -
.precision
【可选】小数位保留精度 -
type
【可选】格式化类型 - 传入"字符串类型"的参数
s
,格式化字符串类型数据
-
空白
,未指定类型,则默认是None,同s
- 传入“ 整数类型 ”的参数
-
b
,将10进制整数自动转换成2进制表示然后格式化 -
c
,将10进制整数自动转换为其对应的unicode字符 -
d
,十进制整数 -
o
,将10进制整数自动转换成8进制表示然后格式化; -
x
,将10进制整数自动转换成16进制表示然后格式化(小写x) -
X
,将10进制整数自动转换成16进制表示然后格式化(大写X)
- 传入“ 浮点型或小数类型 ”的参数
-
e
, 转换为科学计数法(小写e)表示,然后格式化; -
E
, 转换为科学计数法(大写E)表示,然后格式化; -
f
, 转换为浮点型(默认小数点后保留6位)表示,然后格式化; -
F
, 转换为浮点型(默认小数点后保留6位)表示,然后格式化; -
g
, 自动在e和f中切换 -
G
, 自动在E和F中切换 -
%
,显示百分比(默认显示小数点后6位)
常用举例
# {0},{1} 用数字代表引用参数的序号
a = '{0},{1}'.format('hello','world') # => hello,world
# 变量名直接引用,**表示取 key/value
b = '{name},{age}'.format(**{'name':'no96','age':18}) # => no96,18
# 保留两位小数
c = '{0:.2f}'.format(1.23456) # => 1.23
# 居中 站位符10,居中显示,空白处用a填充
d = '{:a^10}'.format(1.23) # =>'aaa1.23aaa'
# 格式化时间
from datetime import datetime
e = '{:%Y-%m-%d %H:%M}'.format(datetime(2018, 2, 3, 4, 5)) # => 2018-02-03 04:05
% 的方式
格式
%[(name)][flags][width].[precision]typecode
参数
(name)
为命名flags
可以有+,-,’ ‘或0。+表示右对齐。-表示左对齐。’ '为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充。width
表示显示宽度precision
表示小数点后精度
格式符
-
%s
字符串 (采用str()的显示) -
%r
字符串 (采用repr()的显示) -
%c
单个字符 -
%b
二进制整数 -
%d
十进制整数 -
%i
十进制整数 -
%o
八进制整数 -
%x
十六进制整数 -
%e
指数 (基底写为e) -
%E
指数 (基底写为E) -
%f
浮点数 -
%F
浮点数,与上相同 -
%g
指数(e)或浮点数 (根据显示长度) -
%G
指数(E)或浮点数 (根据显示长度)
常用举例
# 保留两位小数 占位符4,默认右对齐,左边空出来的用0补齐 %4d则不补齐
a = '%.2f %04d' % (1.23456,7) # => 1.23 0007