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%'
欢迎大家关注我的公众号“计算机视觉与机器学习”
计算机视觉和机器学习