我是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'循环中退出.