购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.4 调试

这里通过设置的一些错误让读者认识在编写代码过程中的常见问题,以帮助读者熟悉和解决实际遇到的问题。

(1)使用格式化整数的占位符格式化字符串,例如:

>>> print ('hello,%d' % 'world')
Traceback (most recent call last):
  File "<pyshell#120>", line 1, in <module>
    print ('hello,%d' % 'world')
TypeError: %d format: a number is required, not str

输出结果告诉我们需要一个数字,而不是字符串。

(2)在使用%f输出圆周率的示例中,若更改为使用%d输出,结果会怎样?输入如下:

>>> print ('圆周率PI 的值为:%d' % 3.14)
圆周率PI 的值为:3

结果把小数点后的数值都抛弃了。

(3)在用0填充的示例中,把010的第一个0更改为其他数字,看看输出结果。再在精度之前添加一个0或大于0、小于0的数字,看看输出结果。

>>> print ('圆周率PI 的值为:%06.2f' % 3.141593)
圆周率PI 的值为:003.14
>>> print ('圆周率PI 的值为:%16.2f' % 3.141593)
圆周率PI 的值为:               3.14
>>> print ('圆周率PI 的值为:%.02f' % 3.141593)
圆周率PI 的值为:3.14
>>> print ('圆周率PI 的值为:%.12f' % 3.141593)
圆周率PI 的值为:3.141593000000
>>> print ('圆周率PI 的值为:%.-12f' % 3.141593)
Traceback (most recent call last):
  File "<pyshell#179>", line 1, in <module>
    print ('圆周率PI 的值为:%.-12f' % 3.141593)
ValueError: unsupported format character '-' (0x2d) at index 11

由输出结果看到,将宽度前面的0更改为其他数字会认作宽度值,而不是填充值。在精度前面加0对结果没有影响;若添加大于0的数字,则作为小数的实际位数输出,位数不够后面补0;若添加小于0的数字,则报异常。 cPbg+Gqv5hlFqLJs7VPD4vneZDLM5hE1LW81Mqews4d2g9IOxKR3qips1Wtugt9b

点击中间区域
呼出菜单
上一章
目录
下一章
×