Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 嵌套循环的双中断_Python_Python 3.x_Primes - Fatal编程技术网

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,我对你的代码算法有一个答案,而不是双循环嵌套循环的问题。但这条线已经关闭了。请问我怎样才能把它寄给你?