学习python努力gogogo 2022-03-06 21:21 采纳率: 100%
浏览 507
已结题

新学python,出现这个问题TypeError: 'int' object is not subscriptable,希望能教我一下

def test(maxs):#给列表定义一个计算公式
for max in maxs:#列表循环
a=0
b=1
if b<=len(maxs):#b小于或列表元素数量时,继续进行循环
avg = divid(add(max[{a}], max[{b}]), 2)#求两个值的平均值,a,b为列表中元素的位置信息
print(int(avg))#输出二者的平均值
a += 1
b += 1 #循环继续时,各项加1,继续循环
continue
else:
break #停止循环

z = [1,2,3,4,5,6,7]
test(z)

  • 写回答

1条回答 默认 最新

  • laoyouzhazi 2022-03-06 22:14
    关注

    出错是:max[{a}]和max[{b}],z是列表/数组,在for循环max是z列表/数组中的元素。
    可以改成:

    def test(maxs):
        if maxs is None or type(maxs) != type([]) or len(maxs) < 1:
            return
        if len(maxs) == 1:
            # print(maxs[0])
            return
        for i in range(len(maxs) - 1):
            avg = divid(add(maxs[i], maxs[i+1]), 2)#求两个值的平均值
            print(int(avg))#输出二者的平均值
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月15日
  • 已采纳回答 3月7日
  • 创建了问题 3月6日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度