愚蠢的Python

2024-05-29 01:41:18 发布

您现在位置:Python中文网/ 问答频道 /正文

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

前提是拿你的小时工资,翻倍,加上3个零,如果你一年中有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周。”

我的表情一定是搞错了…简单地说,我就是不知道


Tags: you数学resultyear公式print小时money
3条回答

你把所有的类型都搞错了。你知道吗

raw_input获取一个字符串,因此money也是这样获取的。因此,当您执行mult=money*2操作时,您并不是将一个数字加倍,而是一个字符串;因此,编写money*2可以创建一个字符串,该字符串是您提供的字符串的两个副本的串联。如果输入10mult将是'1010'。你知道吗

另外,in str(000)000是一个整数,所以它实际上是一个普通的0str(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?"))

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

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'

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

相关问题 更多 >

    热门问题