我在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?
我只能猜測解釋器在打印之前將%d轉換爲int和%s爲字符串。但我不確定。 –
@TonyTannous猜測不是你唯一的選擇。 '%d'是整數,'%f'是浮點數。請參閱[文檔](https://docs.python.org/2/library/stdtypes.html#string-formatting)。 –
'%d'取*整數*。比較'int(1.5)'和'str(1.5)'。 –