2026-09-23

Python 入门系列(五):循环——重复劳动交给程序

while 与 for 两种循环、range 三件套、break 撂挑子与 continue 跳过这件,循环嵌套打印九九乘法表,实战猜数字游戏。

循环:重复劳动交给程序

预计学习时间:60 分钟 · 本系列第 5 / 10 课

一、让电脑干它最擅长的事:重复

要打印 100 遍"我爱学习",难道写 100 行 print?电脑最擅长的就是不知疲倦地重复,**循环(Loop)**就是指挥它重复的指令。Python 有两种循环:while 和 for。

二、循环就是一个圈

        ┌──────────────────────────┐
        ▼                          │
  ┌ 条件成立? ──True──► 执行循环体 ─┤ 回到门口再检查一遍
  └ False ✗ ──► 跳出循环,继续往下

关键认知:循环体执行完后会回到门口重新检查条件。条件一旦不成立,循环才结束。如果条件永远成立,就成了"死循环"——程序卡住出不来。

三、while 循环:"只要……就一直……"

count = 1
while count <= 5:          # 条件成立就继续
    print("第", count, "遍")
    count = count + 1      # 别忘了推进!

print("循环结束,count =", count)
第 1 遍
第 2 遍
第 3 遍
第 4 遍
第 5 遍
循环结束,count = 6

死循环警告:如果漏掉 count = count + 1,count 永远是 1,条件永远成立,程序永远停不下来(命令行里按 Ctrl + C 强制停止)。while 循环体内必须有让条件最终不成立的变化。

四、for 循环 + range:"重复固定次数"

已知要重复几次时,for 更顺手。range(n) 生成 0 到 n-1 的整数序列:

for i in range(5):       # i 依次是 0,1,2,3,4
    print(i, "来了")

for i in range(1, 6):    # 1 到 5(含头不含尾)
    print(i)

for i in range(0, 10, 2): # 步长为 2:0,2,4,6,8
    print(i)

range 三件套:range(起, 止, 步长)——含头不含尾!range(1, 11) 是 1 到 10,不是 1 到 11。

for 还能逐个取出字符串里的字符:

for ch in "Python":
    print(ch, end=" ")   # end=" " 表示用空格代替换行
P y t h o n

五、break 与 continue:控制圈的节奏

# break:立即跳出整个循环
for i in range(1, 10):
    if i == 4:
        print("找到 4,不找了")
        break
    print(i)

# continue:跳过本次,继续下一次
for i in range(1, 6):
    if i % 2 == 0:    # 偶数
        continue      # 跳过下面的 print
    print(i, "是奇数")
1
2
3
找到 4,不找了
1 是奇数
3 是奇数
5 是奇数

记忆口诀:break = 撂挑子(整个不干了),continue = 跳过这一件(下一件接着干)。

六、循环嵌套:九九乘法表

循环里还能套循环。外层走一步,内层走完整圈:

for i in range(1, 10):          # 外层:第 1~9 行
    for j in range(1, i + 1):   # 内层:每行 i 个算式
        print(f"{j}x{i}={i*j}", end="\t")
    print()                     # 每行结束换行
1x1=1
1x2=2   2x2=4
1x3=3   2x3=6   3x3=9
...(共 9 行)

七、实战:猜数字游戏

把循环 + 判断组合起来,做一个经典小游戏:

import random                      # 导入随机数工具包
secret = random.randint(1, 100)    # 1~100 的随机整数

while True:                        # 故意写死循环,靠 break 跳出
    guess = int(input("猜一个 1~100 的数:"))
    if guess == secret:
        print("猜对了!")
        break
    elif guess < secret:
        print("小了,往大猜")
    else:
        print("大了,往小猜")

八、避坑指南

  • ❌ while 忘记更新计数器 → 死循环
  • ❌ range(1, 5) 以为会输出 5 → 含头不含尾,只到 4
  • ❌ 在循环里误改循环变量导致逻辑混乱;for 循环的 i 交给 range 管理,不要在体内手动改

九、动手练习

练习 1:用循环计算 1+2+3+…+100 的和。

练习 2:打印倒三角星号(输入 4,打印 4 行,每行递减)。

# 练习1
total = 0
for i in range(1, 101):
    total = total + i
print("总和是", total)   # 5050

# 练习2
n = int(input("行数:"))
for i in range(n, 0, -1):    # 从 n 倒数到 1
    print("*" * i)

下一课预告:一个变量装不下一整个班级——列表与元组。

← 返回教程列表
顶部