【发布时间】:2016-04-29 04:27:12
【问题描述】:
我是 Python 新手(运行 Python 3),已经搜索了所有地方,但仍然坚持这一点。 我知道我有一个字符串,但需要将其转换为整数作为最终答案。下面是我输入的代码来测试它。我被困在我得到的错误上。 这是一个复利计算器,用户必须输入本金、年利率、复利频率和年份。 我做了一些研究,发现我可以将 ('inf') 用于 p、n 和 r 作为声明,表示可以是大数或小数。基本上用户可以输入任何数字。
P = 10000
n = 12
r = 0.08
p = int(input("Enter starting principle please. "))
n = int(input("Enter Compound intrest rate.(daily, monthly, quarterly, half-year, yearly) "))
r = input("Enter annual interest amount. (decimal) ")
t = int(input("Enter the amount of years. "))
final = P * (((1 + (r/n)) ** (n*t)))
print ("The final amount after", p, "years is", final)
错误:
Enter starting principle please. 75000
Enter Compound intrest rate.(daily, monthly, quarterly, half-year, yearly) 12
Enter annual interest amount. (decimal) 0.03
Enter the amount of years. 15
Traceback (most recent call last):
File "C:\Users\Joshua\AppData\Local\Programs\Python\Python35-32\Program Five.py", line 10, in <module>
final = P * (((1 + (r/n)) ** (n*t)))
TypeError: unsupported operand type(s) for /: 'str' and 'int'
这是我第一次使用这个网站,如果我遗漏了任何信息,请告诉我。我愿意接受任何可以帮助我解决此问题的建议。
Edit
抱歉让您久等了。好的,我相信我可以通过 @Rafael Cardoso 的 Stop and Think 建议正常工作。谢谢你。
P = 10000
n = 12
r = 0.08
p = int(input("Enter starting principle please. "))
n = int(input("Enter Compound intrest rate.(daily, monthly, quarterly, half-year, yearly) "))
r = float(input("Enter annual interest amount. (decimal) "))
t = int(input("Enter the amount of years. "))
final = P * (((1 + (r/n)) ** (n*t)))
print ("The final amount after", p, "years is", final)
当我运行它时,不会弹出任何错误。稍事休息后,我发现('inf') 导致了这个问题,如果我把 p,n,r 留在那里,它可以正常工作。
再次感谢大家!
【问题讨论】:
-
(r/n)whereriststrandnis int 应该清除它 -
如果我将 ('inf') 用于 P、n 和 r,然后删除所有“int”我最终得到 TypeError: unsupported operand type(s) for /: 'str'和'str'
标签: python string int typeerror