我刚开始学习 python,正在尝试制作一个计算贷款利率的程序。我不断收到不支持的 * 操作数类型:“函数”和“整数”。引用第 14 行和第 8 行。我不确定我做错了什么。这是代码:
from sys import argv
def payment(amt, rate, yrs) :
def p(yrs) :
return 12 * yrs
def r(rate) :
return rate / 100 / 12
return (r * amt) / (1 - ((1 + r) ** (-p)))
if __name__ == "__main__" :
amt = int(argv[1])
rate = float(argv[2])
yrs = int(argv[3])
print("$%.2f" % payment(amt, rate, yrs))
请您参考如下方法:
如评论中所述,您的直接问题是(如您的异常所述)您试图将一个整数与一个函数相乘,但这没有意义。根据 Mehmet 的回答,一个天真的解决方法是调用您定义的函数:
return (r(rate) * amt) / (1 - ((1 + r(rate)) ** (-p(yrs))))
但是,您实际上根本不需要这些功能。 payment() 函数的更简单版本可能如下所示:
def payment(amt, rate, yrs) :
p = 12 * yrs
r = rate / 100 / 12
return (r * amt) / (1 - ((1 + r) ** (-p)))
请注意,我们不是在 payment() 中定义函数,而是在每种情况下将计算结果简单地分配给一个变量。
