生风虎 2017-10-09 01:17 采纳率: 100%
浏览 18322
已采纳

TypeError: 'NoneType' object is not subscriptable

python3写的程序不知道这个错误怎么改,报错的内容在图片里面。图片说明

 # -*- coding: utf-8 -*-
"""
Created on Sun Oct  8 20:20:44 2017

@author: ll
"""

import numpy as np

def findMax1(array):
    if len(array)<1:#len(array)得到列表长度
        return [-1,-1]
    index = 1
    unit = array[index]
    for j in range(1,len(array)):
        if array[j] > array[index+1] and array[j] > array[index-1]:#if的含多条件语句的写法
            unit = array[j]
            return [unit,j]#返回的是一个列表类型,最大值和它的坐标1

def getMax1(matrix, column_Num):
    array = [col[column_Num] for col in matrix]#将找到的列循环遍历后放到列表中
    return findMax1(array)

def getPeak(matrix, leftCol, rightCol):
    if rightCol <= leftCol:
        r = getMax1(matrix,leftCol)
        r.append(leftCol)
    mid = int((leftCol + rightCol) / 2)
    unit = getMax1(matrix, mid)#返回的变量名要和接收传参的名字一样

    rightElem = getMax1(matrix, mid+1)
    if leftCol == rightCol - 1:
        leftElem = unit
        if leftElem[0] > rightElem[0]:
            r = leftElem
            r.append(mid)
        else:
            r = rightElem
            r.append(mid+1)
        return r

    leftElem = getMax1(matrix, mid-1)
    if unit[0] >= leftElem[0] and unit[0] >= rightElem[0]:
        unit.append(mid)
        return unit
    if unit[0] < leftElem[0]:
        return getPeak(matrix,leftCol,mid-1)
    return  getPeak(matrix,mid+1,rightCol)



print("please input row:")
n = int(input())
print("please input column:")
m = int(input())
matrix = np.random.randint(100,999,size=[n,m])
print(matrix)

result = getPeak(matrix,0,len(matrix[0])-1)

print(result)


  • 写回答

1条回答 默认 最新

  • Gods_Dusk 2017-10-10 07:35
    关注

    你的unit,leftElem,rightElem中至少有一个是None,打印出来看看吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 krpano-场景分组和自定义地图分组
  • ¥15 lammps Gpu加速出错
  • ¥15 关于PLUS模型中kapaa值的问题
  • ¥15 关于博途V17进行仿真时无法建立连接问题
  • ¥15 机器学习教材中的例题询问
  • ¥15 求.net core 几款免费的pdf编辑器
  • ¥15 为什么安装HCL 和virtualbox之后没有找到VirtualBoxHost-OnlyNetWork?
  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)