Python中的if..else
我写了一个用Python生成素数的程序,下面是这个程序的代码:
def genPrimes(n):
primes = [2] # primes generated so far
last = 3 # last number tried
while last <= n:
for p in primes:
if last % p == 0 and math.sqrt(p) <= last:
break
else:
primes.append(last)
last += 2
return primes
这个程序的结果是正确的。不过,如果你注意到else:语句的缩进,它的位置是错的。如果我尝试把else语句放在if块里面,解释器就会显示内存错误。有人能告诉我为什么会这样吗?
提前谢谢大家!
Maries