Python为什么我定义的函数(其输出是列表)不断收到nonetype错误

时间:2019-06-29 18:42:00

标签: python list function nonetype

我定义了一个输出要打印列表的函数。 然后我想将该列表与代码中的其他列表len(l2)进行比较,但是我不断收到此错误,即我定义的函数的输出为NoneType,并且无法与整数进行比较,我该如何解决此问题?我是编程新手,所以请简单回答

l = []
for i in range(0, 3):
    x = int(input())
    l.append(x)
def prime_counter(n):
    b = 1
    l1 = []
    while b <= n:
        k = 0
        if n % b == 0:
            j = 1
            while j <= b:
                if b % j == 0:
                    k = k + 1
                j = j + 1
            if k == 2:
                l1.append(b)
        b = b + 1
for i in range(0, len(l)):
    l2 = []
    if len(prime_counter(l[i])) > len(l2):
        l2.extend(prime_counter(l[i]))
print(l2)

1 个答案:

答案 0 :(得分:0)

如果函数中没有任何return语句,则会自动返回None。因此,您需要从函数中返回一些对象,该函数的调用者可以进一步使用该对象。

这是在您的prime_counter函数中发生的;您应该从中返回l1列表,但没有返回任何保证len(None)的错误,因为None单身人士没有任何长度与之相关。

您需要从l1返回prime_counter列表:

def prime_counter(n):
    b = 1
    l1 = []
    while b <= n:
        ...
        ...
    return l1