【发布时间】:2015-09-27 08:17:47
【问题描述】:
L=[]
def Prime(N):
a=0
for i in range(2,N):
if N%i==0:
a+=1
if a>0:
return False
else:
return True
def PrimesList(N):
if N==2:
L.append(2)
elif Prime(N):
L.append(N)
return PrimesList(N-1)
else:
return PrimesList(N-1)
L.reverse()
print L
如果我使用一次,它会给出正确的答案。但是L被保存在全球环境中。使用递归时如何将其带入循环?这个问题对你们大多数人来说可能是基本的,但我是 Python 新手。我应该打印质数直到 N。
【问题讨论】:
-
您编写的代码将无法运行 --- 例如,第 5 行的 a=0 需要缩进。
-
为什么要使用递归?只需使用一个简单的循环。顺便说一句,您的
Prime功能可以提高效率。由于缩进错误,很难确切知道您要做什么,但是 1) 它只需要测试直到找到 n 的第一个因子; 2) 如果一个数 n 不是素数,那么它必须有一个因数 -
另外,请修正缩进。通常的 Python 约定是每个缩进级别使用 4 个空格。
标签: python