python“与循环一起使用的else语句”
这段代码来自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
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