我在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)'。 –