为什么我不能在python上将小数乘以整数

时间:2014-05-08 18:33:51

标签: python

我一直在尝试制作一个将cm转换为英尺的高度计算器,这是我的代码:

print "how tall are you (in cm)?"
cm = raw_input()
answer = cm*int(0.03280839)
print answer

我知道这很简单,但我刚刚开始,所以任何关于错误的提示都会很棒。 提前谢谢。

2 个答案:

答案 0 :(得分:10)

cm是一个字符串。您需要先将 it 转换为数字(整数或浮点数)。 (您不希望将转换因子转换为整数,因为结果只是将高度乘以0。)

print "how tall are you (in cm)?"
cm = raw_input()
answer = int(cm)*0.03280839
print answer

这可能就像我一样,但0.03280839并没有让我觉得这是一个明显的转换因素,而2.54(厘米/英寸)则更容易识别。您可以让Python完成将cm转换为英尺的工作 - 首先转换为英寸,然后转换为费用 - 以获得更易读的代码:

answer = int(cm) * 2.54 / 12

或者更好的是,定义一个常量来代替" magic"号。

FEET_PER_CM = 2.54 / 12  # 2.54 cm/inch ÷ 12 in/foot
# ...
answer = int(cm) * FEET_PER_CM

答案 1 :(得分:2)

首先,当你使用raw_input()时,它会返回一个字符串。所以你必须使用int(cm)

将其转换为整数

其次,int(0.03280839)将对数字进行四舍五入并返回0。你为什么要使用int?只是从那里减少了int。所以完成的代码应该是:

print "how tall are you (in cm)?"
cm = raw_input()
answer = int(cm) * 0.03280839 # use int(cm) to convert the string to integer
print answer