Python 嵌套循环的双中断
我见过许多不同的方法可以同时跳出两个嵌套循环,但是对于我的代码来说,最快和最简单的方法是什么呢Python 嵌套循环的双中断,python,python-3.x,primes,Python,Python 3.x,Primes,我见过许多不同的方法可以同时跳出两个嵌套循环,但是对于我的代码来说,最快和最简单的方法是什么呢 primes = [2] for a in range(3, 500, 2): for b in range(2, int(a ** 0.5 + 0.5)): if a % b != 0: primes.append(a) if a % b == 0: [x for x in primes if x != a]
primes = [2]
for a in range(3, 500, 2):
for b in range(2, int(a ** 0.5 + 0.5)):
if a % b != 0:
primes.append(a)
if a % b == 0:
[x for x in primes if x != a]
# double break
将循环放入函数中并使用
return
关键字:
def func(primes):
for a in range(3, 500, 2):
for b in range(2, int(a ** 0.5 + 0.5)):
if a % b != 0:
primes.append(a)
if a % b == 0:
[x for x in primes if x != a]
return
primes = [2]
func(primes)
当程序员编写模块化代码时,这往往是一件好事。将双循环重构为一个函数,并使用
返回来中断。如果不想使用函数,可以使用变量。这里是标志
primes = [2]
flag = 0
for a in range(3, 500, 2):
for b in range(2, int(a ** 0.5 + 0.5)):
if a % b != 0:
primes.append(a)
if a % b == 0:
[x for x in primes if x != a]
flag = 1
break
if flag:
break
我不完全确定你想用这段代码实现什么,但我很确定你写的东西做不到。列表理解没有任何作用,称为“素数”的列表不仅仅包括素数。考虑编写一个函数<代码> iSyPrime(p)< /C> >测试一个值为素数,然后不需要从嵌套循环中中断。我知道“邓肯”,我现在已经意识到了,但是不管如何回答LeWISC,我对你的代码算法有一个答案,而不是双循环嵌套循环的问题。但这条线已经关闭了。请问我怎样才能把它寄给你?