为了账号安全,请及时绑定邮箱和手机立即绑定

类型错误 int 不可调用

类型错误 int 不可调用

largeQ 2023-07-18 10:14:15
我正在尝试编写一个程序,该程序使用一个函数根据用户输入的信息计算单利。我收到一个类型错误 - 'int' 不可调用。我认为这个错误只发生在你意外命名变量 int 时,但我没有这样做,所以我不确定为什么我的程序中会出现这种类型的错误。代码如下,感谢任何指导!def accrued(p, r, n):    percent = r/100    total = p(1 + (percent*n))    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)
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

改变:

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

到:

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

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


查看完整回答
反对 回复 2023-07-18
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

您可以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))


查看完整回答
反对 回复 2023-07-18
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

变化总计 = p*(1 + (百分比*n))


def accrued(p, r, n):

    percent = r/100

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

    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)


查看完整回答
反对 回复 2023-07-18
  • 3 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信