Python输出格式全总结

字符串格式化方法

在Python语言编程中,我们会与字符串打交道,那务必会输出字符串来查看字符串的内容,Python中控制字符串格式通常有两种方法,一种是使用%,另一种是使用format()方法。

>>> "i learn %s"%('python')
'i learn python'
>>> "i learn {}".format('python')
'i learn python'

用%来格式化字符串是继承C语言的用法,而Python语言更高级的字符串格式化方法是format(),官方也更加推荐使用format()来格式字符串。

format()基本使用

format方法的基本使用语法是:<用{}表示的模板字符串>.format(<用逗号分隔的参数>),基本思想就是用逗号分隔的参数来替换到模板字符串中的花括号{}位置处,即用参数来传入具体的值,用花括号{}来指定字符串的格式。模板字符串中的花括号{}可以有序号和格式控制信息,这可以有各种方法组合在一起,下面为大家介绍它的主要用法。

如果花括号里面没有序号,则按照出现的顺序进行替换;如果花括号里制定了使用参数的序号,则按照序号对应参数进行替换,序号从0开始数字编号或者使用关键字参数。

>>> '{},{}'.format('abc',18)
'abc,18'
>>> '{0},{1}'.format('abc',18)
'abc,18'
>>> '{1},{0},{1}'.format('abc',18)
'18,abc,18'
>>> '{name},{age}'.format(age=18,name='abc')
'abc,18'

使用花括号{}可以很方便的输出不同的格式和内容,如果需要输出花括号{}本身,可以采用 “{{” 表示 “{” ,用 “}}” 表示 “}”。

>>> "圆周率{{{1}{2}}}是{0}".format("无理数",3.1415926,"...")
'圆周率{3.1415926...}是无理数'

格式控制信息

格式控制信息包括填充,对齐,宽度,千位分隔符,精度,类型等六个字段,这些字段可以组合使用。

填充,对齐,宽度是三个相关联的字段,通常在一起使用。宽度指的是设定输出字符串宽度,如果字符串实际宽度比设定值大,则使用实际宽度;如果字符串实际宽度比设定值小,则使用设定值,默认用空格符作为填充。填充则是指当字符串实际宽度小于设定的宽度时,除了实际的字符串外,用什么字符表示其他内容,默认用空格,也可以改为其他值。<对齐>则表示输出字符串的对齐方式,分别用<,>,^来表示左对齐,右对齐,居中对齐,默认使用左对齐。

>>> "{0:30}".format("PYTHON")
'PYTHON                        '
>>> "{0:>30}".format("PYTHON")
'                        PYTHON'
>>> "{0:*^30}".format("PYTHON")
'************PYTHON************'
>>> "{0:3}".format("PYTHON")
'PYTHON'

千位分隔符使用逗号(,)来表示,下面的代码对比了使用千位分隔符与不使用的区别。

>>> "{0:-^20,}".format(1234567890)
'---1,234,567,890----'
>>> "{0:-^20}".format(1234567890)
'-----1234567890-----'

精度控制信息,由小数点(.)开头,可表示两种含义。对于浮点数,精度表示小数部分输出的有效精度;对于字符串,精度表示输出的最大长度。

>>> "{0:.2f}".format(123.2345677)
'123.23'
>>> "{0:.4}".format("python")
'pyth'
>>> 

类型表示输出整数和浮点数的格式规则。对于整数类型,包括6种格式:b(输出整数对应的二进制),c(输出整数对应的Unicode字符),d(输出整数对应的十进制),o(输出整数对应的八进制),x(输出整数对应的小写十六进制),X(整数对应的大写十六进制)。

>>> "{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(324)
'101000100,ń,324,504,144,144'

对于浮点数,包括4种格式:e(浮点数对应的小写e指数形式),E(浮点数对应的大写E指数形式),f(标准浮点格式),%(浮点数的百分数形式),通常对于浮点数,我们还是用前面介绍过的精度控制信息来控制浮点数的有效数字。

>>> "{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.14152)
'3.14e+00,3.14E+00,3.14,314.15%'

欢迎大家关注我的公众号
计算机视觉和机器学习

  • 10
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值