在python错误中返回只返回一个值

时间:2014-11-25 10:46:08

标签: python return

我在使用return时遇到了一些麻烦。我想将函数生成的数字添加到已经创建的列表中但是当我返回时,我只得到一个值,但是如果我使用print就可以了。

return只生成一个值吗?

def aFunction(n):
    for j in range(2,n):
        for i in range(2,j):
            if (j % i ==0):
                break
            else:
                return(j)
                break
print(aFunction(10))

好的,所以这次我稍微编辑了代码,我怎么能用p来除n(这是一个int),这样如果没有余数,我可以把它附加到p?

    def function(n):
         p = [2,]
         for j in range(3,n):
            if (j // p) == 0:
                p.append(j)
         return(p)
   print(function(20))

2 个答案:

答案 0 :(得分:2)

因为return终止了该函数,所以当条件转到else子句时,它会终止函数,

使用generators: -

def aFunction(n):
    for j in range(2,n):
        for i in range(2,j):
            if j % i == 0:
                break
            else:
                yield j
                break

print list(aFunction(10))

答案 1 :(得分:0)

因为return终止了该函数并返回了值。

您应该将这些值添加到列表中,然后打印列表:

def aFunction(n):
    l = []
    for j in range(2,n):
        i in range(2,j):
            if (j % i != 0):
                l.append(j)
    return l

print(aFunction(10))

在Python中,您可以编写更好的代码:

[j for j in range(2,n) for i in range(2,j) if j % i != 0]