Python的format()函数

前言

上篇博文,我们用format(number,',')快速实现了对数字千分位的分隔。
熟悉python的人都知道,foramt函数更常见的用法其实是str.format(),其基本语法是通过{}来代替以前的%
示例:

>>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
'hello world'
 
>>> "{0} {1}".format("hello", "world")  # 设置指定位置
'hello world'
 
>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'

注意:如果在字符串中需要直接展示花括号,则用另一个花括号包裹起来转义。
见示例:

>>> "{{我是谁}}:{}".format("皮卡丘")
'{我是谁}:皮卡丘'

也支持参数式填写,有点像SHELL的变量:

>>> "我是谁:{pikachu}".format(pikachu="皮卡丘")
'我是谁:皮卡丘'

数字格式化

数字格式输出描述
3.141592{:.2f}3.14保留小数点后两位
3.141592{:+.2f}+3.14带符号保留小数点后两位
3.141592{:.0f}3不带小数,四舍五入
3{:0>2d}03数字补零 (填充左边, 宽度为2)
3{x<4d}3xxx数字补x (填充右边, 宽度为4)
123456789{:,}123,456,789千分位隔开
0.38{:.2%}38%百分比格式
1000000000{:.2e}1.00e+09指数记法
11{:b}1011二进制转化

b、d、o、x 分别是二进制、十进制、八进制、十六进制。


看到这里,其实上一篇千分位的处理,还有更进阶的内容。
由表可知,千分位的分隔可以直接使用"{:,}".format(nunber)来解决,这里有个问题,如果分隔的时候带小数,且最后几位是0的话,在被format转化成字符串的时候会被忽略,就像这样:

>>> "{:,}".format(12345678.90)
'12,345,678.9'

>>> format(12345678.90,',')
'12,345,678.9'

如果我们希望保留想要的小数位数,需要这样子:

>>> "{:,.2f}".format(12345678.90)
'12,345,678.90'

>>> "{:,.4f}".format(12345678.90)   #任意几位都行
'12,345,678.9000'

所以,format函数在解决数字格式化输出的时候是很强大的,可以组合使用其中的规则来达到个性化定制的目的。

END

  • 68
    点赞
  • 248
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值