无法理解为什么我在高中教的这个“速成数学”公式似乎不能正常工作。
前提是把你的时薪加一倍加三个零,如果你一年全职工作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 周”
我一定是表达有误...简单地说,我就是不知道
请您参考如下方法:
你把所有的类型都弄错了。
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?"))
