模块课程(3/4)
Break、Continue 和 else 循环
在循环内(for 和 while),您可以使用以下命令更改正常流程:
三个构造:
break— 立即退出循环。continue— 跳过主体的其余部分并跳转到下一个迭代。else(在循环上)— 当循环在没有break的情况下终止时执行。
break
for n in [3, 7, 11, 4, 9]:
if n % 2 == 0:
primo_pari = n
break
primo_pari # 4break 尽快停止循环。 break 之后的任何内容
当前迭代的主体未执行。
continue
risultati = []
for n in range(1, 11):
if n % 2 == 0:
continue # skip evens
risultati.append(n * n)
risultati # [1, 9, 25, 49, 81]将 continue 视为“进入下一次迭代”。它用于过滤项目
无需再添加一级缩进。
循环中的 else (Python 习惯用法)
Python 的一个特性:循环也可以有一个 else,仅在以下情况下执行:
循环自然终止(没有break)。它非常适合搜索:
target = 7
for n in [2, 4, 6, 8]:
if n == target:
trovato = True
break
else:
trovato = False
trovato # False将其读作:"对于列表中的每个 n;如果采用 break 分支,请跳过
其他;否则执行else".
嵌套循环:break仅退出最内层循环
for x in range(3):
for y in range(3):
if x == y == 1:
break
print(x, y)break 仅退出 for y,而不退出 for x。要退出两者,您必须使用
标志或函数+ return。
不寻常的循环...else 构造
在 Python 中, for 和 while 循环都可以具有可选的 else 子句。 仅当循环正常完成时才执行 else 块(即没有遇到 break 语句)。这对于搜索算法非常有帮助(例如“搜索一个元素:如果找到,则中断;否则,报告未找到”)。
自己尝试一下
给定列表“numbers = [10, 15, 20, 25, 30, 35]”,找到第一个能被 7 整除的数字并将其分配给“result”。如果不存在,则分配-1。
显示提示
35 是列表中第一个(也是唯一一个)能被 7 整除的数字。
3 次尝试后可用的解决方案
复习练习
使用范围(1, 21) 上的 for 循环构建包含 1 到 20(含)奇数的列表“odd_numbers”,并继续跳过偶数。
显示提示
如果n是偶数,则继续;否则追加。
3 次尝试后可用的解决方案
额外的挑战
Given the list `numbers = [7, 11, 14, 21, 25]`, write a `for` loop to find the first number that is divisible by 7 and also strictly greater than 10. When you find it, store it in `found` and exit the loop using `break`. Finally, evaluate `found`.
显示提示
Inside the loop, check if num % 7 == 0 and num > 10:, assign it to found and trigger break.
3 次尝试后可用的解决方案