愚蠢的Python初学者

时间:2014-01-18 00:15:02

标签: python expression

在掌握为什么我在高中教授的这种“快速数学”公式似乎无法正常工作时遇到了一些麻烦。

前提是拿你的小时工资,加倍并添加三个零,如果你全年工作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周”

我的表情一定是犯了错误......简单地说,我只是不知道

7 个答案:

答案 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,评估为0str'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