2017-03-03 59 views
-3

我在codecademy上學習Python類,我應該在一對字典中打印每個項目,然後是他們的價格和庫存量。這是我寫的代碼:爲什麼%d截取1.5但%s正確打印數字?


prices = { 
    "banana" : 4, 
    "apple" : 2, 
    "orange" : 1.5, 
    "pear" : 3, 
} 
stock = { 
    "banana" : 6, 
    "apple" : 0, 
    "orange" : 32, 
    "pear" : 15, 
} 

for fruit in prices: 
    print fruit 
    print "price: %d" % prices[fruit] 
    print "stock: %d" % stock[fruit] 

輸出是除了橙色的價格都正確。使用%d,它打印出1的值。當我用%s替換%d時,將打印1.5的正確值,但我不明白爲什麼%d不能使用十進制值。 1.5是一個數字,所以在這種情況下,我不應該使用%d而不是%s?

+1

我只能猜測解釋器在打印之前將%d轉換爲int和%s爲字符串。但我不確定。 –

+0

@TonyTannous猜測不是你唯一的選擇。 '%d'是整數,'%f'是浮點數。請參閱[文檔](https://docs.python.org/2/library/stdtypes.html#string-formatting)。 –

+0

'%d'取*整數*。比較'int(1.5)'和'str(1.5)'。 –

回答

2

%d轉換爲十進制,不具有浮動部分

%S保持浮動,如果你想打印漂浮在屏幕

完全顯示出來,用%F

1

由於%d是像Integer這樣的數字格式的格式,因此您應該使用%f,而不是^^這是用於浮點數字。

相關問題