我在使用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))
答案 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]