Python-'NoneType'对象不可下标

时间:2018-09-23 22:32:44

标签: python

运行此代码时,如果m [x] [i]> mini,则显示该行中的“ TypeError:'NoneType'对象不可下标”: 而且我不知道为什么。 我通过X(x = 0)并在t中使用i     随机导入

def llenarmatriz(m, filas, columnas):
    for i in range(filas):
        m.append([0] * columnas)
    for i in range(filas):
        for j in range(columnas):
            m[i][j] = random.randint(0, 99)
    for i in range(filas):
        for j in range(columnas):
            print("%3d" % m[i][j], end="")
        print()


def procesarmatrizfila(m, filas, columnas, x):
    maxi = 10000000000000
    mini = maxi * -1
    for i in range(columnas):
        if m[x][i] > mini:
            mini = m[x][i]
            fm = i
    for i in range(filas):
        if m[i][x] <= maxi:
            maxi = m[i][x]
            fmin = i
    return mini, fm, maxi, fmin


m = []
n = int(input("Igresar numero: "))
columnas = filas = n
m = llenarmatriz(m, filas, columnas)
x = 0
while x < filas:
    mini, fm, maxi, fmin = procesarmatrizfila(m, filas, columnas, x)
    print("Fila numero: %d" % x)
    print("el valor maximo es: %d y esta en la posicion: %d %d" %      (mini, x, fm))
print("el valor minimo es: %d y esta en la posicion: %d %d" % (maxi, x, fmin))
x = x + 1

1 个答案:

答案 0 :(得分:0)

m = llenarmatriz(m, filas, columnas)

在这里您不从函数返回任何内容,因此m变为nonetype 解决此错误

def llenarmatriz(m, filas, columnas):
    for i in range(filas):
        m.append([0] * columnas)
    for i in range(filas):
        for j in range(columnas):
            m[i][j] = random.randint(0, 99)
    for i in range(filas):
        for j in range(columnas):
            print("%3d" % m[i][j], end="")
        print()
    return m