循环插画

电脑最擅长的事就是重复:打印 100 遍"你好"、把全班 50 人的成绩算一遍,人会疯,电脑眼都不眨。这一课学习让代码"转圈"的循环。

一、for 循环:把一串东西挨个过一遍

for 循环示意

for i in [1, 2, 3, 4, 5]:
    print(i)
# 依次输出 1 2 3 4 5

读作:"让 i 依次取方括号里的每个值,每取一个就执行一遍缩进的代码。"方括号里的东西叫列表(第八课细讲)。

挨个数数太麻烦?用 range() 自动生成一串数:

写法生成说明
range(5)0, 1, 2, 3, 4从 0 开始,到 5 之前(不含 5)
range(1, 6)1, 2, 3, 4, 5从 1 到 6 之前
range(1, 10, 2)1, 3, 5, 7, 9第三个参数是步长
# 打印 1 到 100 的和?三行搞定
total = 0
for i in range(1, 101):
    total += i
print(total)   # 5050
💡 range(5) 不含 5 这个"差一"设计,初学者经常数错。记住:range 的结束值取不到。

二、while 循环:条件为真就一直转

while 循环示意

n = 1
while n <= 5:
    print(n)
    n += 1      # 这一行不能忘!否则 n 永远是 1
# 输出 1 2 3 4 5

while 是"当……的时候":条件成立就执行一轮,执行完回头再判断,直到条件不成立才跳出来。

⚠️ while 最大的坑是死循环:如果条件永远为真,程序就转到天荒地老。上面例子里忘了写 n += 1 就会这样,运行时按 Ctrl + C 可以强制停下。

for 和 while 怎么选?次数固定、挨个遍历 → 用 for;不知道要转多少圈、看条件 → 用 while(比如"猜对为止")。

三、break 与 continue:循环的"遥控器"

关键字作用比喻
break直接跳出整个循环提前交卷走人
continue跳过本轮,进入下一轮这题跳过做下一题
for i in range(1, 10):
    if i == 4:
        continue   # 跳过 4
    if i == 7:
        break      # 到 7 直接结束
    print(i)
# 输出:1 2 3 5 6

四、循环小项目:猜数字游戏

把 while + if + break 组装成第一个真正的游戏:

import random                    # 引入随机数工具
secret = random.randint(1, 100)  # 偷偷生成 1~100 的随机数

while True:                      # 条件恒为真:一直猜,猜对才停
    guess = int(input("猜一个1~100的数:"))
    if guess > secret:
        print("大了,再小一点")
    elif guess < secret:
        print("小了,再大一点")
    else:
        print("猜对了!你真厉害")
        break                    # 猜对,跳出循环,游戏结束
💡 import random 是"引入工具箱"的意思。Python 自带了很多工具箱(叫模块),random 专门管随机数。第十一课的实战还会用到别的工具箱。

五、动手练一练

练习 1:用 for 打印九九乘法表(需要循环里再套循环):

1×1=1
1×2=2  2×2=4
1×3=3  2×3=6  3×3=9
...

练习 2:统计 1~100 里所有偶数的和。

点击查看参考答案
# 练习1:九九乘法表
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f"{j}×{i}={i*j}", end="\t")
    print()   # 内层循环结束,换行

# 练习2
total = 0
for i in range(1, 101):
    if i % 2 == 0:
        total += i
print(total)   # 2550
🎉 这一课你学会了:for / while、range()、break / continue,还做了猜数字游戏。下一课学习列表与元组——把一堆数据装进一个盒子!
More

相关教程