python % 格式符

python格式符

% 转换标识符包含两个或以上的字符,而且遵循以下顺序

  • 以%开头
  • mapping key(可选),格式化别名,用一对括号+变量名组成
  • 转换标识(可选)
  • 最小宽度(可选),如果指定宽度,不足的话以占位符填充。
  • 精度(可选)在'.'后面指定
  • 长度(可选)
  • 转换的类型(必),比如int
In [12]: print ('%(language)s has %(number)03d quote types.' % {'language': 'Python', 'number': 2})
Python has 002 quote types.
转换标识含义
#转换标识起始
0数字填充符
-左对齐符号(如果指定了0,会忽略0)
空格占位符
+在数字前面显示一个+(忽略空格标识)
In [13]: print ('%(price)-.2f' % {'price': 0.1292}) 
         # price为mapping_key, -为转换标识,.2为精度, f为转换的类型
转换类型含义
dSigned integer decimal.
iSigned integer decimal.
oSigned octal value.8进制表示
uObsolete type – it is identical to ‘d’(废弃)
xSigned hexadecimal (lowercase) 16进制.
XSigned hexadecimal (uppercase).
eFloating point exponential format (lowercase).指数表示
EFloating point exponential format (uppercase).大写指数表示
fFloating point decimal format. 浮点数,默认是6位
FFloating point decimal format.
gFloating point format. Uses lowercase exponential format if exponent is less than -4 or not less than precision, decimal format otherwise. 根据值的类型,选择%e或者%f
GFloating point format. Uses uppercase exponential format if exponent is less than -4 or not less than precision, decimal format otherwise.
cSingle character (accepts integer or single character string).
rString (converts any Python object using repr()).
sString (converts any Python object using str()).
aString (converts any Python object using ascii()).

1、格式化十进制数字

In [18]: '%d' % 2
Out[18]: '2'

In [19]: '%02d' % 2
Out[19]: '02'     # 格式化成2位字符串,不足2位时,使用0作为占位符

In [20]: '%2d' % 2
Out[20]: ' 2'    # 不足2位使用,使用空格作为占位符

2、格式化浮点数

In [25]: '%f' % (1/3.0)
Out[25]: '0.333333'   # 默认保留6位

In [26]: '%.2f' % (1/3.0)
Out[26]: '0.33'  # 指定浮点数精度为2

In [27]: '%.2f' % 0.1378
Out[27]: '0.14'  # 四舍五入

3、格式化字符串

In [60]: '%s' % 'test'
Out[60]: 'test'

In [61]: '{name}'.format(name=1)
Out[61]: '1' # python 2.6引入,可以根据名字以及顺序format,也不用转换类型

In [63]: '%r' % 1000
Out[63]: '1000'

In [64]: '%r' % 'aa'
Out[64]: "'aa'"  # 注意这里的内容

repr==%r所以在日志中使用居多,repr 目标是准确性,面向机器。
str==%s 最常用, str 目标是可读性,面向程序员。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值