字符串格式化输出

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