Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.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“与循环一起使用的else语句”_Python - Fatal编程技术网

python“与循环一起使用的else语句”

python“与循环一起使用的else语句”,python,Python,这段代码来自python教程 在本章中,与循环一起使用的else语句我运行以下代码,但它返回不同的结果: for num in range(10, 20): for i in range(2, num): j = num / i print "%d equals %d * %d" % (num, i, j) break else: print num, "is a prime number" 结果如下 10 equ

这段代码来自python教程 在本章中,与循环一起使用的else语句我运行以下代码,但它返回不同的结果:

for num in range(10, 20):
    for i in range(2, num):
        j = num / i
        print "%d equals %d * %d" % (num, i, j)
        break
    else:
        print num, "is a prime number"
结果如下

10 equals 2 * 5
11 equals 2 * 5
12 equals 2 * 6
13 equals 2 * 6
14 equals 2 * 7
15 equals 2 * 7
16 equals 2 * 8
17 equals 2 * 8
18 equals 2 * 9
19 equals 2 * 9
但这不是正确的结果

10 equals 2 * 5
11 is a prime number
12 is equal 2 * 6
13 is a prime number
14 equals 2 * 7
15 equals 3 * 5
16 equals 2 * 8
17 is a prime number
18 equals 2 * 9
19 is a prime number
你总是跳出for循环。只有当num可被i整除时,才应中断循环:


for循环的else套装只有在没有执行break语句的情况下才会执行。如果没有可以分割num的i,则永远不会执行break,num是质数。

我没有看到测试num是否是质数,break语句会破坏内部循环,因此内部循环的else语句永远不会执行。您刚刚从错误的位置复制了代码。这和例子不一样,为什么你会期望相同的结果@Jornsharpe tnx我发现了我的错误
if num % i == 0:
    break