为什么我在Python中无法将小数与整数相乘
我一直在尝试做一个身高计算器,把厘米转换成英尺,这是我的代码:
print "how tall are you (in cm)?"
cm = raw_input()
answer = cm*int(0.03280839)
print answer
我知道这很简单,但我刚开始学习,所以如果你能告诉我哪里有问题,那就太好了。提前谢谢你!
2 个回答
3
首先,当你使用 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
10
cm
是一个字符串。你需要先把它转换成数字(整数或浮点数)。(你不想把你的转换因子变成整数,因为结果会把高度乘以0,这样就没意义了。)
print "how tall are you (in cm)?"
cm = raw_input()
answer = int(cm)*0.03280839
print answer
这可能只是我个人的感觉,但0.03280839这个转换因子对我来说并不明显,而2.54(厘米到英寸的转换)就更容易识别了。你可以让Python帮你把厘米转换成英尺——先转换成英寸,然后再转换成英尺,这样代码会更易读:
answer = int(cm) * 2.54 / 12
或者更好的是,定义一个常量来代替这个“魔法”数字。
FEET_PER_CM = 2.54 / 12 # 2.54 cm/inch ÷ 12 in/foot
# ...
answer = int(cm) * FEET_PER_CM