第 5 课
循环
把人无法耐心完成的重复交给计算机。

循环
1 / 1 · ← → 翻页
第 5 课
把人无法耐心完成的重复交给计算机。

导言
用 while 或 for...in... 写出循环。
需要时,用 break / continue 提前处理。
现象
现象

变的是零件,不变的是动作。
原理
n = 5
while n > 0:
print(n)
n = n - 1if,但会反复回来n 减到 0,条件才不再成立把 while 改成 if,对照只打印一次。
辨析
n = 5
while n > 0:
print(n)为了避免死循环,条件所依赖的变量应该在循环过程中进行改变。
提醒:这段是死循环,课堂演示后立刻停掉。
原理
for i in 0, 1, 2, 3:
print(i**2)i 依次是 0、1、2、3指出每一轮开始时 i 被赋成下一个值。
原理
for i in range(0, 5):
print(i**2)range(a, b) 含 a,不含 b核对打印的是 0 到 4 的平方,没有 5。
例证
for i in range(2, 10, 2):
print(i)问:有没有可能用负数步长做倒数?
原理
a = 4
while a > 0:
for i in range(a):
print(a)
a -= 1while 与 for 可以混用指出内层 for 的圈数随 a 变化。
原理
for n in range(10, 20):
if n % 3 == 0:
print(n)
break对照:若去掉 break,15 和 18 也会打印。
原理
for n in range(10, 20):
if n % 3 != 0:
continue
print(n)对照上一页:这里 12、15、18 都会留下。
实践
从 1 起,小于 50 就打印,再加 7。
序列:1 8 15 22 29 36 43。
50 不打印。
请打开「在线 IDE」。先写清什么在变、何时停。
小结
while 在条件成立时反复执行子结构;必须在子结构里改变条件所依赖的量,否则会进入死循环。与 if 外表相似,但 if 只走一次。for...in... 依次遍历给出的值;range(a, b) 是前闭后开,可省略起点 0,也可用第三个数设步长。break 提前结束整个循环;continue 跳过本轮剩余语句,进入下一轮。