如何在for循环中中断?

Sam*_*des 1 python

我是Python的新手,我对"break"在for循环中的工作方式感到困惑.Python文档中有一个例子(中断和继续语句),它计算范围(2,10)中的素数:

for n in range(2, 10):
   for x in range(2, n):
       if n % x == 0:
           print(n, 'equals', x, '*', n//x)
           break
   else:
       # loop fell through without finding a factor
       print(n, 'is a prime number')
Run Code Online (Sandbox Code Playgroud)

输出是:

2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
Run Code Online (Sandbox Code Playgroud)

但是,当我在代码中突破"break"时:

for n in range(2, 10):
   for x in range(2, n):
       if n % x == 0:
           print(n, 'equals', x, '*', n//x)
       break
   else:
       # loop fell through without finding a factor
       print(n, 'is a prime number')
Run Code Online (Sandbox Code Playgroud)

输出将是:

2 is a prime number
4 equals 2 * 2
6 equals 2 * 3
8 equals 2 * 4
Run Code Online (Sandbox Code Playgroud)

你可以解释一下我突破"破解"后代码中会发生什么吗?谢谢

小智 5

当然 - 简单地说 - "打破"意味着它不再受制于它之前的"if".

代码读取if语句,对其执行操作,然后无论if语句是true还是false,它都会执行"break"并退出for循环.

在第一个示例中,如果n%x == 0语句为真,则代码仅从'for'循环中退出.