2、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位)

 

字符串的参数使用{NUM}进行表示,0, 表示第一个参数,1, 表示第二个参数, 以后顺次递加;
使用":", 指定代表元素需要的操作, 如":.3"小数点三位, ":8"占8个字符空间等;
还可以添加特定的字母, 如:
'b' - 二进制. 将数字以2为基数进行输出.
'c' - 字符. 在打印之前将整数转换成对应的Unicode字符串.
'd' - 十进制整数. 将数字以10为基数进行输出.
'o' - 八进制. 将数字以8为基数进行输出. 
'x' - 十六进制. 将数字以16为基数进行输出, 9以上的位数用小写字母.
'e' - 幂符号. 用科学计数法打印数字, 用'e'表示幂. 
'g' - 一般格式. 将数值以fixed-point格式输出. 当数值特别大的时候, 用幂形式打印. 
'n' - 数字. 当值为整数时和'd'相同, 值为浮点数时和'g'相同. 不同的是它会根据区域设置插入数字分隔符. 
'%' - 百分数. 将数值乘以100然后以fixed-point('f')格式打印, 值后面会有一个百分号.

 



'{:4%}'.format(0.028)
Out[2]: '2.800000%'
'{:.4%}'.format(0.028)
Out[3]: '2.8000%'
#通过位置参数
'{0},{1}'.format('kzc',18)
Out[5]: 'kzc,18'
'{},{}'.format('kzc',18)
Out[6]: 'kzc,18'
'{1},{0},{1}'.format('kzc',18)
Out[7]: '18,kzc,18'
#通过关键字参数
'{name},{age}'.format(age=18,name='kzc')
Out[9]: 'kzc,18'
p=['kzc',18]
'{0[0],0[1]}'.format(p)
Traceback (most recent call last):
  File "D:\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2862, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-11-c91ca1d9f877>", line 1, in <module>
    '{0[0],0[1]}'.format(p)
ValueError: Only '.' or '[' may follow ']' in format field specifier
'{},{}'.format(p[0],p[1])
Out[12]: 'kzc,18'
#填充与对齐
'{:>8}'.format('189')
Out[14]: '     189'
#填充常和对齐一起使用
#^、<、>、分别是居中、左对齐、右对齐,后面带宽度
# :号后面带填充的字符,只能是一个字符,不指定默认用空格填充
'{:>8}'.format('189')
Out[18]: '     189'
'{:0>8}'.format('189')
Out[19]: '00000189'
'{:a>8}'.format('189')
Out[20]: 'aaaaa189'
#精度与类型f
#精度常和类型f一起使用,.2表示长度为2的精度,f表示float类型
"{:.2f}".format(321.33345)
Out[23]: '321.33'
"{:.2}".format(321.33345)  #保留2位数
Out[30]: '3.2e+02'
"{:.4}".format(321.33345)   #保留4位数
Out[31]: '321.3'
"{:.4f}".format(321.33345)  #保留4位小数
Out[32]: '321.3335'
# ,号做金额的千位分隔符
'{:,}'.format(123456789)
Out[25]: '123,456,789'