在Python中,for/else结构用于循环结束时执行某些操作。例如,在一组数字中查找质数时,我们可以使用for/else来输出所有非质数。但是,在生成素数时,我们应该避免使用for/else结构,并使用纯for循环。
这是一个使用for/else的质数生成器函数:
def prime_generator(n):
primes = []
for i in range(2, n + 1):
for j in primes:
if i % j == 0:
break
else:
primes.append(i)
return primes
这是改进后的纯for循环质数生成器:
def prime_generator(n):
primes = []
for i in range(2, n + 1):
is_prime = True
for j in range(2, i):
if i % j == 0:
is_prime = False
break
if is_prime:
primes.append(i)
return primes