为什么我得到一个“不能用'float'类型的nonit乘以sequence'”

2024-06-28 20:25:12 发布

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

我试图创建一个贷款计算器,但由于某些原因,我一直收到“cannotmultiplesequence by non int of type‘float’”错误

iniLoan=float(input("What is the loan"))
interestRate=float(input("What is the interest rate?"))
numberOfpayments=int(input("For how many years is it?"))

monthly=float(iniLoan)*[float(interestRate)*(int(1)+float(interestRate))*int(numberOfpayments)\
]/[(int(1)+float(interestRate))*int(numberOfpayments)-int(1)]

print("The monthly payment is {0:f} " .format(monthly))

Tags: theinputbyis原因floatwhat计算器
2条回答

()[]是不可交换的-你应该只使用(和{}来表示数学表达式。只要用正确类型的括号重写monthly,就可以了:

monthly=float(iniLoan)*(float(interestRate)*(int(1)+float(interestRate))*int(numberOfpayments)\
)/((int(1)+float(interestRate))*int(numberOfpayments)-int(1))

进一步解释为什么Mureinik的答案是正确的。

使用括号[]创建一个列表。
您收到的错误: can't multiply sequence by non-int of type 'float'是说不能用浮点数乘以一个列表(序列)。

例如:
['a', 34, 'cow] * 2.365没有任何意义。
你是如何将这张名单列为2.365倍的?你不能。

相同的逻辑是正确的,即使列表只包含一个数字:
[5] * 4.3也会因为相同的原因而导致相同的错误。

解决方案:
当您想让内部的值一起计算时,您只想使用好的ol'括号()。在

相关问题 更多 >