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)