在掌握为什么我在高中教授的这种“快速数学”公式似乎无法正常工作时遇到了一些麻烦。
前提是拿你的小时工资,加倍并添加三个零,如果你全年工作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周”
我的表情一定是犯了错误......简单地说,我只是不知道
答案 0 :(得分:8)
你错了所有类型。
raw_input
获取字符串,因此获取money
。因此,当你执行mult=money*2
时,你不会加倍数字,而是一个字符串;因此,编写money*2
会产生一个字符串,它是您提供的两个字符串副本的串联。如果您输入10
,则mult
将为'1010'
。
另外,在str(000)
000
中是一个整数,所以它实际上是一个普通的0
; str(000)
因此导致'0'
,它与你的doubled-string连接。 1010
与'0'
=&gt;连接在一起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?"))
答案 1 :(得分:2)
你正试图用字符串做数学。首先将其转换为整数:
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'
答案 2 :(得分:1)
raw_input()
函数返回string
。
将money
乘以数字而不是乘以整数值时,您将乘以字符串值。这导致变量的新值是字符串的倍数,或者重复多次的字符串。我建议在money上使用money=int(money)
函数将其转换为整数,或者更好money=float(money)
以获得浮点数。
答案 3 :(得分:0)
试试这个
Segoe UI
答案 4 :(得分:-1)
你确实意识到以下内容会给你想要的答案,对吧?
#Math Work
mult = money * 2000
答案 5 :(得分:-1)
首先,当您阅读用户输入时,money
是一个字符串。因此,当用户输入10
时,您会获得'10'
因此,当您执行money*2
时,您无法获得预期的20
。相反,您得到'10'*2
,'10'
连接两次,即i / e / '1010'
。
接下来,000
是一个int
,评估为0
,str
为'0'
。您要添加的内容是'000'
我会这样做你的任务:
# Preface
print '---> Want to know your yearly salary? <---'.upper()
# Question
money = int(raw_input("How much money do you earn per hour?"))
# Math Work
mult = money * 2
result = str(mult) + "000"
或者,您也可以这样做:
# Preface
print '---> Want to know your yearly salary? <---'.upper()
# Question
money = int(raw_input("How much money do you earn per hour?"))
# Math Work
result = money*2000 # because adding three 0s is the same as multiplying by 1000
答案 6 :(得分:-1)
# Preface
print '---> Want to know your yearly salary? <---'.upper()
# Question
money = raw_input("How much money do you earn per hour?")
# Math Work
result = str(int(money)*2) + '000'
# Answer
print "you make roughly $%r per year, Working full-time for 50 weeks out of the year" % result