1.1格式化操作符(%)
字符串格式化符号
格式化字符 | 转换方式 |
---|---|
%c | 转换成字符(ASCLL码值,或者长度为一的字符串) |
%r(a) | 优先用repr()函数进行字符串转换 |
%s | 优先用str()函数进行字符串转换 |
%d/%i | 转换成有符号十进制数 |
%u(b) | 转换成无符号十进制数 |
%o(b) | 转换成无符号八进制数 |
%x(b)/%X(b) | 转换成无符号十六进制数(x/X代表转换后的十六进制字符的大小写) |
%e/%E | 转换成科学计数法(e/E控制输出e/E) |
%f/%F | 转换成浮点型(小数部分自然截断) |
%g/%G | %e和%f/%E和%F的简写 |
%% | 输出% |
a.Python2.0新增
b.Python2.4里%u/%o/%x/%X在遇到负数的时候会返回一个有符号字符串 可以使用冒号来定义对齐方式:
Python支持两种格式输入参数。第一种是元组。第二种是字典形式。这种形式里面,键是作为格式字符串出现,相对应的值作为参数在进行转化时提供个格式字符串,格式字符串既可以跟print语句用来向终端用户输出数据,又可以用来合并字符串形成新的字符串,而且可以直接显示到GUI界面上去。
格式化操作符辅助指令
符号 | 作用 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用作左对齐 |
+ | 在正数前面显示加号(+) |
[sp] | 在正数面前显示空格 |
‘#’ | 在八进制数前面显示零‘0’,在十六进制前面显示‘0x’或者‘0X’(取决于用的是x还是X) |
0 | 显示的数字前面填充‘0’而不是默认的空格 |
% | ‘%%’输出一个单一的‘%’ |
(var) | 映射变量(字典参数) |
m.n | m是显示的最小总宽度,n是小数点后的位数(如果可用的话) |
1.2使用格式化字符串的例子
1.2.1十六进制输出
>>>"%x" % 108
'6c'
>>>"%X" % 108
'6C'
>>>"%#x" % 108
'0x6c'
>>>"%#X" % 108
'0X6C'
1.2.2浮点型和科学计数法形式输出
>>>'%f' % 1234.567890
'1234.56780'
>>>'%.2f' % 1234.56780
'1234.57'
>>>'%E' % 1234.567890
'1.234568e+03'
>>>'%e' % 1234.56780
'1.234568e+03'
>>>'%g' % 1234.567890
'1234.57'
>>>'%G' % 1234.567890
'1234.57'
>>>"%e" % (111111111111111111L)
'1.111111e+17'
1.2.3整型和字符串输出
>>>"%+d" % 4
'+4'
>>>"%+d" % -4
'-4'
>>>"we are at %d%%" % 100
'we are at 100%'
>>>'Your host is: %s' % 'earth'
'Your host is:earth'
>>>'Host: %s Port: %d' % ('mars',80)
'Host:mars Port: 80'
>>>num=123
>>>'dec: %d/oct: %#o/hex: %#X' % (num,num,num)
'dec: 123/oct: 0173/hex: 0X7B'
>>>"MM/DD/YY=%02d/%02d/%d" % (2,15,67)
'MM/DD/YY=02/15/67'
>>>w,p='Web','page'
>>>'http://xxx.yyy.zzz/%s/%s.html' % (w,p)
'http://www.yyy.zzz/Web/page.html'
上面的例子都是使用的元组类型的参数作转换。下面我们将吧字典类型的参数提供给格式化操作符。
>>>'There are %(howmany)d % (lang)s Quotaion Symbols' % \
...('lang':'Python','howmany':3)
'There are 3 Python Quotation Symbols'
1.3 调试工具
所有的python对象都有一个字符串表现形式(通过repr()函数,或者str()函数来展现)。print 语句自动为每个对象调用str()函数。在定义自己的对象时,可以为自己的对象创建字符串表达形式。这样,repe(),str()或者print被调用时,就可以获得一个适当的字符串描述信息。当他们不能显示一个对象的信息时,“Pythonic”的默认做法可以返回
<...something that is useful...>.