我很难理解为什么我在高中时教的这个“快速数学”公式似乎不正确。
前提是拿你的小时工资,加倍,加上三个零,结果将大致等于你的年薪,如果你全职工作50周以外的一年。
# Preface
print '---> Want to know your yearly salary? <---'.upper()
# Question
money = raw_input("How much money do you earn per hour?")
# Math Work
mult = money * 2
result = mult + str(000)
# Answer
print "you make roughly $%r per year, Working full-time for 50 weeks out of the year" % result结果:我的结果看起来是这样的:“你一年挣大约10100美元,全年全职工作50周。”
我一定是在expression...Simply上搞错了,我只是不知道
发布于 2014-01-18 00:24:07
你把所有类型都搞错了。
raw_input获得一个字符串,因此money也是这样获得的。因此,当您执行mult=money*2时,您不是将一个数字加倍,而是一个字符串;因此,编写money*2的效果是创建一个字符串,该字符串是您提供的两个字符串副本的连接。如果您输入10,mult将是'1010'。
而且,在str(000)中,000是一个整数,所以它实际上是一个普通的0;因此,str(000)会导致'0',它会连接到您的双字符串。1010与'0' => 10100连接。
你真正想要的是
# Question
money = int(raw_input("How much money do you earn per hour?"))
# Math Work
mult = money * 2
result = str(mult) + "000"顺便说一句,添加零和类似的东西对人类来说是可以的,但是由于我们正在处理的是一台计算机,所以你可以在2000年前把它乘以:
result = 2000*int(raw_input("How much money do you earn per hour?"))发布于 2014-01-18 00:23:58
你在用绳子做数学。首先将其转换为整数:
money = int(raw_input("How much money do you earn per hour?")),而不是试图将字符串添加到末尾。
result = money * 2000虽然如果您真的想这样做,您可以将整数转换回字符串以在结尾添加3个零:
mult = money * 2
strmult = str(mult)
result = strmult + '000'发布于 2015-02-28 22:47:49
raw_input()函数返回一个string。将money乘以一个数字时,不是将整数值乘以,而是将字符串值乘以。这将导致变量的新值是字符串的倍数,或者字符串重复多次。我建议使用货币上的money=int(money)函数将其转换为整数,或者更好的是使用money=float(money)来获得浮点数。
https://stackoverflow.com/questions/21198333
复制相似问题