首页 > 代码库 > 格式化操作
格式化操作
格式化操作符%
Python风格的字符串格式化操作法只适用于字符串类型,类是于C语言的printf()函数字符串格式化,下面是字符串格式化的符号。
字符串格式化符号
格式化字符 | 转换方式 |
---|---|
%c | 转换成字符(ASCII码值,或者长度为一的字符串) |
%r | 优先使用repr()函数进行字符串转换 |
%s | 优先使用str()函数进行字符串转换 |
%a | 优先使用 ascii()函数进行字符串转换 |
%d/%i | 转成有符号十进制数 |
%u | 转成无符号十进制数 |
%o | 转成无符号八进制数 |
%x%X | 转换成无符号十六进制数(x/X代表转换后的十六进制字符的大小写) |
%e%E | 转换成科学计数法(e/E控制输出e/E) |
%f%F | 转换成浮点型(小数部分自然截断) |
%g%G | %e和%f%E和%F的简写 |
%% |
格式化操作符辅组指令
符号 | 作用 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用左对齐 |
+ | 在正数前面显示加号(+) |
<sp> | 在正数前面显示空格 |
# | 在八进制数前面显示‘0‘,在十六进制前面显示‘0x‘ 或者‘0X‘ |
0 | 显示的数字前面填充‘0‘而不是默认的空格 |
% | ‘%%‘输出一个单一的‘%‘ |
(var) | 映射变量(字典参数) |
m.n | m是显示最小总宽度,n是小数点后的位数(好像不能使用) |
Python支持两种格式的输入参数。第一种是元组,这基本上是一种的printf()风格的转换参数集。Python支持的第二种形式是字典形式,这种形式里面键是做为格式字符串的出现,相对应的值做为参数在进行转换时提供给格式字符串。总之第二种使用字典形式是出现在反复出现多次,而第二种是需要格式化的内容很多的时候。
使用举例
元组格式举例:
In [2]: ‘Defence of the Ancients is %s‘ %(‘DOTA‘,)Out[2]: ‘Defence of the Ancients is DOTA‘In [3]: ‘Defence of the Ancients is %s‘ %‘DOTA‘Out[3]: ‘Defence of the Ancients is DOTA‘In [4]: ‘Defence of the Ancients is %s‘ %(‘DOTA‘)Out[4]: ‘Defence of the Ancients is DOTA‘
上面三中方式使用中建议使用第一个,这种方式能够很容易看出格式化的的输入参数是个元组,而下面两种其实也是元组只是由解释器进行操作转换的。
字典格式举例:
In [8]: ‘Defence of the Ancients is %s.I like %s‘ %(‘DOTA‘,‘DOTA‘)Out[8]: ‘Defence of the Ancients is DOTA.I like DOTA‘In [9]: ‘Defence of the Ancients is %(name)s.I like %(name)s‘ %{‘name‘:‘DOTA‘}Out[9]: ‘Defence of the Ancients is DOTA.I like DOTA‘
十六进制输出:
In [11]: ‘%x‘ %108Out[11]: ‘6c‘In [12]: ‘%X‘ %108Out[12]: ‘6C‘In [13]: ‘%#x‘ %108Out[13]: ‘0x6c‘In [14]: ‘%#X‘ %108Out[14]: ‘0X6C‘
整型、浮点和科学计数法形式输出
In [26]: ‘%f‘ %1234.123456789Out[26]: ‘1234.123457‘In [28]: ‘%0.9f‘ %1234.123456789Out[28]: ‘1234.123456789‘In [30]: ‘%e‘ %1234.123456789Out[30]: ‘1.234123e+03‘In [31]: ‘%E‘ %1234.123456789Out[31]: ‘1.234123E+03‘In [36]: ‘%d‘ %1234.123456789Out[36]: ‘1234‘In [37]: ‘%10d‘ %1234.123456789Out[37]: ‘ 1234‘In [38]: ‘%10.10d‘ %1234.123456789Out[38]: ‘0000001234‘In [39]: ‘%-10d‘ %1234.123456789Out[39]: ‘1234 ‘In [40]: ‘%+10d‘ %1234.123456789Out[40]: ‘ +1234‘
format方法
上面对于字符串格式化输出使用的是格式化操作符,而Python又有一种使用更灵活的格式化方式,就是format方法。
In [45]: ‘Defence of the Ancients is {}.‘.format(‘DOTA‘)Out[45]: ‘Defence of the Ancients is DOTA.‘In [46]: ‘Defence of the Ancients is {}.I like {}.2016 begin {}‘.format(‘DOTA‘,‘DOTA‘,‘TI6‘)Out[46]: ‘Defence of the Ancients is DOTA.I like DOTA.2016 begin TI6‘In [47]: ‘Defence of the Ancients is {1}.I like {2}.2016 begin {0}‘.format(‘TI6‘,‘DOTA‘,‘DOTA‘,‘TI6‘)Out[47]: ‘Defence of the Ancients is DOTA.I like DOTA.2016 begin TI6‘In [48]: ‘Defence of the Ancients is {1}.I like {2}.2016 begin {0}‘.format(‘DOTA‘,‘DOTA‘,‘TI6‘)Out[48]: ‘Defence of the Ancients is DOTA.I like TI6.2016 begin DOTA‘In [49]: ‘Defence of the Ancients is {0}.I like {0}.2016 begin {1}‘.format(‘DOTA‘,‘TI6‘)Out[49]: ‘Defence of the Ancients is DOTA.I like DOTA.2016 begin TI6‘In [50]: ‘Defence of the Ancients is {name}.I like {name}.2016 begin {time}‘.format(name=‘DOTA‘,time=‘TI6‘)Out[50]: ‘Defence of the Ancients is DOTA.I like DOTA.2016 begin TI6‘
在使用数字下标定义的时候注意数字不能多于后面字符串的个数,一旦多于会报IndexError的错误。而后面字符串的个数是可以多于前面数字下标的个数的。Python计数是从0开始的,这个需要注意。
混合使用
In [55]: ‘{} {} {}‘.format(1,2,3)Out[55]: ‘1 2 3‘In [56]: ‘{} {} {name}‘.format(1,2,name=‘DOTA‘)Out[56]: ‘1 2 DOTA‘In [70]: ‘{} {name} {}‘.format(1,2,3,name=‘DOTA‘)Out[70]: ‘1 DOTA 2‘In [63]: ‘{1} {0} {name}‘.format(1,2,name=‘DOTA‘)Out[63]: ‘2 1 DOTA‘In [67]: ‘{name} {0} {2}‘.format(1,2,3,name=‘DOTA‘)Out[67]: ‘DOTA 1 3‘
扩展学习类的操作
In [72]: class A: ....: def __init__(self): ....: self.x=1 ....: self.y=2 ....: In [73]: a = A()In [74]: a.xOut[74]: 1In [75]: a.yOut[75]: 2In [76]: ‘{0.x},{0.y}‘.format(a)Out[76]: ‘1,2‘In [87]: ‘{inst.x}‘.format(inst=a)Out[87]: ‘1‘In [88]: ‘{inst.y}‘.format(inst=a)Out[88]: ‘2‘
扩展学习二列表的操作
In [89]: lstOut[89]: [1, 2, 3, 4]In [90]: ‘{0[0]}‘.format(lst)Out[90]: ‘1‘In [91]: ‘{0[3]}‘.format(lst)Out[91]: ‘4‘In [92]: ‘{lst1[1]}‘.format(lst1=lst)Out[92]: ‘2‘In [93]: ‘{lst1[2]}‘.format(lst1=lst)Out[93]: ‘3‘
格式化操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。