首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >愚蠢的Python初学者

愚蠢的Python初学者
EN

Stack Overflow用户
提问于 2014-01-18 00:15:01
回答 7查看 141关注 0票数 1

我很难理解为什么我在高中时教的这个“快速数学”公式似乎不正确。

前提是拿你的小时工资,加倍,加上三个零,结果将大致等于你的年薪,如果你全职工作50周以外的一年。

代码语言:javascript
复制
# 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上搞错了,我只是不知道

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-01-18 00:24:07

你把所有类型都搞错了。

raw_input获得一个字符串,因此money也是这样获得的。因此,当您执行mult=money*2时,您不是将一个数字加倍,而是一个字符串;因此,编写money*2的效果是创建一个字符串,该字符串是您提供的两个字符串副本的连接。如果您输入10mult将是'1010'

而且,在str(000)中,000是一个整数,所以它实际上是一个普通的0;因此,str(000)会导致'0',它会连接到您的双字符串。1010'0' => 10100连接。

你真正想要的是

代码语言:javascript
复制
# Question
money = int(raw_input("How much money do you earn per hour?"))

# Math Work
mult = money * 2
result = str(mult) + "000"

顺便说一句,添加零和类似的东西对人类来说是可以的,但是由于我们正在处理的是一台计算机,所以你可以在2000年前把它乘以:

代码语言:javascript
复制
result = 2000*int(raw_input("How much money do you earn per hour?"))
票数 8
EN

Stack Overflow用户

发布于 2014-01-18 00:23:58

你在用绳子做数学。首先将其转换为整数:

代码语言:javascript
复制
money = int(raw_input("How much money do you earn per hour?"))

,而不是试图将字符串添加到末尾。

代码语言:javascript
复制
result = money * 2000

虽然如果您真的想这样做,您可以将整数转换回字符串以在结尾添加3个零:

代码语言:javascript
复制
mult = money * 2
strmult = str(mult)
result = strmult + '000'
票数 2
EN

Stack Overflow用户

发布于 2015-02-28 22:47:49

raw_input()函数返回一个string。将money乘以一个数字时,不是将整数值乘以,而是将字符串值乘以。这将导致变量的新值是字符串的倍数,或者字符串重复多次。我建议使用货币上的money=int(money)函数将其转换为整数,或者更好的是使用money=float(money)来获得浮点数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21198333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档