类型错误 int 不可调用

我正在尝试编写一个程序,该程序使用一个函数根据用户输入的信息计算单利。我收到一个类型错误 - 'int' 不可调用。我认为这个错误只发生在你意外命名变量 int 时,但我没有这样做,所以我不确定为什么我的程序中会出现这种类型的错误。代码如下,感谢任何指导!


def accrued(p, r, n):

    percent = r/100

    total = p(1 + (percent*n))

    return total


principal = int(input('Enter the principal amount: '))

rate = float(input('Enter the anuual interest rate. Give it as a percentage: '))

num_years = int(input('Enter the number of years for the loan: '))

result = accrued(principal, rate, num_years)

print(result)


largeQ
浏览 151回答 3
3回答

慕桂英3389331

改变:total = p(1 + (percent*n))到:total = p*(1 + (percent*n))如果没有*,p(...)则被解析为函数调用。由于整数被作为 传递p,因此它导致了您所看到的错误。

海绵宝宝撒

您可以principal通过 - 从用户处获取int(input(...))- 所以它是一个整数。然后你将它提供给你的函数:result = accrued(principal, rate, num_years)作为第一个参数 - 您的函数将第一个参数作为p。然后你做total = p(1 + (percent*n))  # this is a function call - p is an integer这就是你的错误的根源:类型错误-“int”不可调用通过提供像这样的运算符来修复它*total = p*(1 + (percent*n))

翻翻过去那场雪

变化总计 = p*(1 + (百分比*n))def accrued(p, r, n):    percent = r/100    total = p*(1 + (percent*n)) # * missing     return totalprincipal = int(input('Enter the principal amount: '))rate = float(input('Enter the anuual interest rate. Give it as a percentage: '))num_years = int(input('Enter the number of years for the loan: '))result = accrued(principal, rate, num_years)print(result)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python