Почему я получаю возвращаемое значение None и что это значит?

Я не очень хорошо понимаю, результат: "нет". Я пытаюсь запустить код исключения (Гаусса), но получаю результат: "Нет".

from numpy import *
a= array([[1,0],[0,2]])
b= array([1,4])

def gauss(a,b):
    n=len(b)

    k=0
    while k in range (0, n-1):
        i=k+1
        while i in range ((k+1),(n)):
            a[i,k]=a[i,k]/a[k,k]
            j=k+1
            while j in range ((k+1),(n)):
                a[i,j]=a[i,j]-a[i,k]*a[i,k]
                j=j+1
            b[i]=b[i]-a[i,k]*b[k]
            i=i+1
        k=k+1
        return a
        return b

 print gauss(a,b)

1 ответ

По умолчанию функции в Python возвращают None если нет return заявление, или оно не возвращает никакого значения. В вашем случае вы можете добавить return a, b до конца вашей функции. Результатом будет то, что gauss(a, b) вернет кортеж (a, b) с недавно вычисленными значениями.

from numpy import *
a= array([[1,0],[0,2]])
b= array([1,4])

def gauss(a,b):
    n=len(b)

    k=0
    while k in range (0, n-1):
        i=k+1
        while i in range ((k+1),(n)):
            a[i,k]=a[i,k]/a[k,k]
            j=k+1
            while j in range ((k+1),(n)):
                a[i,j]=a[i,j]-a[i,k]*a[i,k]
                j=j+1
            b[i]=b[i]-a[i,k]*b[k]
            i=i+1
        k=k+1
    return a, b

print gauss(a,b)
Другие вопросы по тегам