找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 16677|回复: 5

[已解决] 'builtin_function_or_method' object is not subscriptable 什么原因

5

主题

16

帖子

16

积分

贫民

积分
16
mdily 发表于 2016-7-19 23:16:05 | 显示全部楼层 |阅读模式
def main():
    age = int(input("Enter your age:"))
    months = int(input("Enter number of months of service:"))
    firstHigh = eval(input("Enter first of three highest salaries:"))
    secondHigh = eval(input("Enter second of three highest salaries:"))
    thirdHigh = eval(input("Enter third of three highest salaries:"))
    annualPension = average(firstHigh,secondHigh,thirdHigh) * rate(months)
    print("Annual pension:${0:,.2f}".format(annualPension))
def average(a,b,c):
    ave = (a + b + c) / 3
    return ave
def rate(a):
    yrs = a // 12
    perRate = 5 * 0.015 + 5 * 0.0175 + (yrs - 10) * 0.02
    p = min[0.8,perRate]
    return p
main()   




Traceback (most recent call last):
  File "C:\Users\sunqi\退休金.py", line 20, in <module>
    main()
  File "C:\Users\sunqi\退休金.py", line 7, in main
    annualPension = average(firstHigh,secondHigh,thirdHigh) * rate(months)
  File "C:\Users\sunqi\退休金.py", line 17, in rate
    p = min[0.8,perRate]
TypeError: 'builtin_function_or_method' object is not subscriptable
回复

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-7-20 10:47:41 | 显示全部楼层
p = min[0.8,perRate]  哥们仔细一点, 这种错误真应该自己仔细找找啊, 不能遇到问题就马上去问, 首先要做的就是独立想办法解决,实在解决不了再求助, 这样对于问题的理解更深刻。
正确的写法是p = min(0.8,perRate)
是括号,而不是中括号
min的用法是这样滴:
min(values)
min(value1, value2, ...)
回复 支持 反对

使用道具 举报

5

主题

16

帖子

16

积分

贫民

积分
16
mdily  楼主| 发表于 2016-7-20 11:12:57 | 显示全部楼层
blueelwang 发表于 2016-7-20 10:47
p = min[0.8,perRate]  哥们仔细一点, 这种错误真应该自己仔细找找啊, 不能遇到问题就马上去问, 首先要 ...

找了很久,脑子里就觉得这样是可以的,说了才恍然大悟
回复 支持 反对

使用道具 举报

5

主题

101

帖子

101

积分

版主

Rank: 7Rank: 7Rank: 7

积分
101

最佳新人活跃会员热心会员突出贡献

QQ
落叶秋风 发表于 2016-7-20 11:56:34 | 显示全部楼层
一般来说报错的话,错误信息最后一行是错误类型,倒数第二行是错的具体行数,再往上引用此行的具体行数,所以遇到错误先看看倒数第二行去找找错误,这时候就要细心点了,因为Python的缩进很严格,有些编译器对于空格和Tab键混用缩进是报错的,有些人不知道这点一直在找代码上的错误,楼主这个属于概念未深,所以错了还不自知,多看些例子就好啦(注:多看看基础教程,我隔段时间看总能发现新大陆)
回复 支持 反对

使用道具 举报

5

主题

165

帖子

165

积分

版主

Rank: 7Rank: 7Rank: 7

积分
165

热心会员突出贡献优秀版主荣誉管理

mongo 发表于 2016-7-20 13:28:52 | 显示全部楼层
楼上正解
回复

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-7-20 15:46:09 | 显示全部楼层
落叶秋风 发表于 2016-7-20 11:56
一般来说报错的话,错误信息最后一行是错误类型,倒数第二行是错的具体行数,再往上引用此行的具体行数,所 ...

经验之谈啊, 非常有用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表