print style
老式的类似C语言风格的格式化输出
用 "%" 来作为占位符
>>> \'i am %s\' % (\'jiangds\') # 可以采用元组的方式
\'i am jiangds\'
>>> \'i am %(name)s\' % {\'name\':\'jiangds\'} # 可以采用字典的方式
\'i am jiangds\'
>>> \'i am %s, my name is %s\' % (\'jcds\', \'cm\') # 多次出现采用元组的方式
\'i am jcds, my name is cm\'
>>> \'i am %(name)s, my name is %(name)s\' % {\'name\':\'jiangds\'} # 多次出现采用字典的方式
\'i am jiangds, my name is jiangds\'
>>> \'i am %(name)s, my name is %(name_2)s\' % {\'name\':\'jiangds\', \'name_2\':\'cm\'}
\'i am jiangds, my name is cm\'
>>> name = \'jiangds\'
>>> \'i am %s\' % name # 只有一个元素可以直接跟在百分号后面,这里解释其自动做了一个封包,把name封包为元组(语法糖)
\'i am jiangds\'
字符串中占位符type
部分常用的如下:
|Type |意义 |
---|:--|---
|d、i、u |十进制整数
|d、i、u |十进制整数
|x、X |十六进制整数(x为对应数字里的字母为小写,X为大写)
|e、E |科学计数法(e为对应科学计数里的小写e,E为大写E)
|f、F |浮点数(默认保留6位小数)
|g、G |自动选择最优表示法(整数、浮点数或科学计数法)
|c |单个字符或整数转化为字符
|s |用str()转化的字符串
|r |用repr()转化的字符串
|a |用ascii()转化为字符串
其中的str()和repr()调用的是_str_和_repr_的魔术方法
- 示例
>>> \'the num is %d\' % 1211
\'the num is 1211\'
>>> \'the num is %i\' % 1211
\'the num is 1211\'
>>> \'the num is %u\' % 1211
\'the num is 1211\'
>>> \'the num is %o\' % 1211
\'the num is 2273\'
>>> \'the num is %x\' % 1211
\'the num is 4bb\'
>>> \'the num is %X\' % 1211
\'the num is 4BB\'
>>> \'the num is %e\' % 1211
\'the num is 1.211000e+03\'
>>> \'the num is %E\' % 1211
\'the num is 1.211000E+03\'
>>> \'the num is %f\' % 0.123456789
\'the num is 0.123457\'
>>> \'the num is %F\' % 0.123456789
\'the num is 0.123457\'
>>> \'the num is %g\' % 0.123456789
\'the num is 0.123457\'
>>> \'the num is %g\' % 0.00000123456789
\'the num is 1.23457e-06\'
>>> \'the num is %G\' % 0.00000123456789
\'the num is 1.23457E-06\'
>>> \'the num is %s\' % \'jiangds\'
\'the num is jiangds\'
>>> \'the num is %r\' % \'jiangds\'
"the num is \'jiangds\'"
>>> \'the num is %a\' % \'东升\'
"the num is \'\\u4e1c\\u5347\'"
- 数字的位数和对齐
-:左对齐
+:右对齐
0:填充0
>>> \'%0.3f\' % 0.123456789 # 小数位保留3位
\'0.123\'
>>> \'%10.3f\' % 0.123456789 # 总位数为10位,小数位保留3位,不够空格填充
\' 0.123\'
>>> \'%-10.3f\' % 0.123456789 # 总位数10位,"-"左对齐,右边填充空格
\'0.123 \'
>>> \'%+10.3f\' % 0.123456789
\' +0.123\'
>>> \'%+10.3f\' % -0.123456789
\' -0.123\'
>>> \'%010.3f\' % 0.123456789 # 前面加0填充
\'000000.123\'
format
python3推荐format格式的格式化输出,功能更强大
字符串中的占位符用 {} 或者带索引的 {Index} , 或者更详细的格式(索引后面加冒号),如{0:10.3f}等。
format括号里可以跟位置参数,也可以跟关键字参数。
- 示例
>>> \'i am {}\'.format(\'jds\')
\'i am jds\'
>>> \'i am {}, my age is {}\'.format(\'jds\', \'18\')
\'i am jds, my age is 18\'
>>> \'i am {1}, my age is {0}\'.format(\'18\', \'jds\')
\'i am jds, my age is 18\'
>>> \'i am {name}, my age is {age}\'.format(name=\'jds\', age=18)
\'i am jds, my age is 18\'
>>> \'i am {name}, my name is {name}\'.format(name=\'jds\')
\'i am jds, my name is jds\'
>>> \'i am {0}, my name is {0}\'.format(\'jds\')
\'i am jds, my name is jds\'