我只是在学习python,我正在尝试制作计算贷款利率的计划.我一直得到*:'function'和'int'不支持的操作数类型.参考第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))
Run Code Online (Sandbox Code Playgroud)
正如评论中提到的,你的直接问题是(正如你的例外所说)你试图将一个整数与一个函数相乘,这没有意义.根据穆罕默德的回答,一个天真的解决办法是调用你定义的函数:
return (r(rate) * amt) / (1 - ((1 + r(rate)) ** (-p(yrs))))
Run Code Online (Sandbox Code Playgroud)
但是,您根本不需要这些功能.更简单的payment()函数版本可能如下所示:
def payment(amt, rate, yrs) :
p = 12 * yrs
r = rate / 100 / 12
return (r * amt) / (1 - ((1 + r) ** (-p)))
Run Code Online (Sandbox Code Playgroud)
请注意,我们不是在里面定义函数,而是payment()在每种情况下简单地将计算结果分配给变量.
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |