Skip to main content
 首页 » 编程设计

Python 新手和不支持的操作数

2025年05月04日9sky-heaven

我刚开始学习 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() 中定义函数,而是在每种情况下将计算结果简单地分配给一个变量。