官术网_书友最值得收藏!

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的數字,則報異常。

主站蜘蛛池模板: 邯郸市| 庄浪县| 辽阳县| 木兰县| 镇远县| 石狮市| 汉沽区| 六枝特区| 雷州市| 隆德县| 平定县| 永顺县| 博乐市| 庆元县| 民乐县| 故城县| 永修县| 恩施市| 邹平县| 崇州市| 陇西县| 桓仁| 潜山县| 沛县| 铁力市| 抚顺市| 诸暨市| 东乌珠穆沁旗| 东明县| 齐齐哈尔市| 如东县| 海原县| 虞城县| 乡城县| 沅江市| 扎鲁特旗| 综艺| 东丽区| 仙桃市| 叶城县| 永州市|