Python 格式化输出
2017-01-13 本文已影响93人
老黄爱Python
输出信息使我们获取程序调试信息的重要渠道;
恰到好处的输出格式能帮我们直观的查看调试信息。
-
常用格式化符种类及描述:
| 符号 | 描述 |
|:-------------:|:-------------:|
| %c | 格式化字符(输出数值对应的ASCII码) |
| %s |格式化字符串 |
| %d | 格式化整数 |
| %x | 格式化十六进制数(小写) |
| %X | 格式化十六进制数(大写) |
| %o | 格式化八进制数 |
| %f | 格式化浮点数字,可以指定小数点精度 |
| %%|输出%号| -
格式化构成字符串:
>>> tmp = '%c'%100 #'%c'%100, 将100转化为对应的ASCII码字符'd'
>>> print (tmp)
d
>>>
- 格式化字符串 :
>>> print ('HelloWorld')
HelloWorld
>>> phoneTypes = 'Xiaomi, Iphone, Oppo'
>>> print ('%s' % phoneTypes)
Xiaomi, Iphone, Oppo
>>>
- 格式化输出整数:
>>> x = 10
>>> print ('%d' % x) #10进制
10
>>> print ('0x%x' % x) #16进制(小写)
0xa
>>> print ('0x%x' % (id(10))) #对象的地址使用16进制表示
0x5094a580
>>> print ('0x%X' % x) #16进制(大写)
0xA
>>> print ('%o' % x) #8进制
12
- 百分比输出:
>>> print ('%d%' % 10) #直接使用%报错
Traceback (most recent call last):
File "<pyshell#58>", line 1, in <module>
print ('%d%' % 10)
ValueError: incomplete format
>>>
>>> print ('%d%%' % 10) #使用%%可以正常输出
10%
- 格式化输出浮点数:
>>> pi = 3.1415926
>>> print ('%d' % pi) #使用%d只能显示整数
3
>>> print ('%f' % pi) #使用浮点显示
3.141593 #小数点之后只显示6位
>>> print ('%1.7f' % pi) #指定小数点显示7位
3.1415926
>>> print ('%1.8f' % pi) #指定小数点显示8位,后面默认补0
3.14159260
- print函数中的格式化输出的过程:
>>> x = 10
>>> y = 20
>>> z = 30
>>> print ('%d' % x) #%d是占位符,
10
>>> print ('x=%d, y=%d, z=%d' % (x, y, z)) #占位符的个数要和要显示对象数量一致,否则会报错
x=10, y=20, z=30
>>> print ('x=%d, y=%d, z=%d' % (x, y)) #占位符与显示对象不一致
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not enough arguments for format string
- print 制定占位符宽度:
>>> print ('x=%d y=%d z=%d' % (x, y, z))
x=10 y=20 z=30 #想要一种效果,x,y,z分割一定距离,例如:x=10 y=20 z=30
#制定占位符的宽度:
>>> print ('x=%5d y=%5d z=%5d' % (x, y, z))
x= 10 y= 20 z= 30
%nd的作用,请看下面输出:
>>> x = 1
>>> print ('x=%1d' % x)
x=1
>>> print ('x=%2d' % x) #%2d,制定占位符宽度为2,右对齐
x= 1 #=后面空一格
>>> print ('x=%3d' % x)
x= 1 #=后面空两格
>>> x, y, z = 10, 20, 30
>>> print ('x=%5d y=%5d z=%5d' % (x, y, z))
x= 10 y= 20 z= 30 #我们想要:x=10 y=20 z=30这个效果
>>>
>>> print ('x=%-5d y=%-5d z=%-5d' % (x, y, z)) #输出左对齐:'-'
x=10 y=20 z=30