Skip to main content
 首页 » 编程设计

python之break 如何在 for 循环中工作

2025年05月04日18soundcode

我是 Python 的新手,我对“break”在 for 循环中的工作方式感到困惑。 Python 文档 ( break and continue Statements ) 中有一个示例计算范围 (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') 

输出是:

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 

然而,当我在代码中取消缩进“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') 

输出将是:

2 is a prime number 
4 equals 2 * 2 
6 equals 2 * 3 
8 equals 2 * 4 

你能解释一下我取消缩进“break”后代码中发生了什么吗?谢谢

请您参考如下方法:

当然 - 简单地说,去掉“Break”意味着它不再受制于它之前的“if”。

代码读取 if 语句,对其进行操作,然后无论该 if 语句是真还是假,它都会执行“break”并退出 for 循环。

在第一个示例中,如果 n%x==0 语句为真,代码只会退出“for”循环。