Skip to content

第7章:循环语句

7.1 while循环

while循环是一种条件循环,当条件成立时,会重复执行代码块,直到条件不成立为止。

语法

python
while 条件:
    # 条件成立时执行的代码块
    代码1
    代码2
    ...

核心

  • 循环条件:循环的关键,决定了循环是否继续执行
  • 避免死循环:确保循环条件最终会变为False,否则循环会无限执行

示例

python
# 打印1-10的数字
count = 1
while count <= 10:
    print(count)
    count += 1  # 重要:必须修改计数器,否则会导致死循环

# 实现简单计数器
number = 5
while number > 0:
    print(f"倒计时:{number}")
    number -= 1
print("倒计时结束!")

# 用户重复输入直到正确
correct_answer = "Python"
while True:
    answer = input("请输入Python的正确拼写:")
    if answer == correct_answer:
        print("回答正确!")
        break  # 跳出循环
    else:
        print("回答错误,请重试。")

运行结果

1
2
3
4
5
6
7
8
9
10
倒计时:5
倒计时:4
倒计时:3
倒计时:2
倒计时:1
倒计时结束!
请输入Python的正确拼写:python
回答错误,请重试。
请输入Python的正确拼写:Python
回答正确!

7.2 for循环

for循环是一种遍历循环,用于遍历可遍历对象(如字符串、列表、元组、字典等)。

语法

python
for 变量 in 可遍历对象:
    # 对每个元素执行的代码块
    代码1
    代码2
    ...

可遍历对象

  • 字符串:遍历每个字符
  • 列表:遍历每个元素
  • 元组:遍历每个元素
  • 字典:默认遍历键,也可以遍历值或键值对
  • range()函数:生成指定范围的数字

range()函数

  • 语法range(start, stop, step)
  • 参数
    • start:起始值(默认为0)
    • stop:结束值(不包含)
    • step:步长(默认为1)
  • 示例
    • range(10):生成0-9的数字
    • range(1, 10):生成1-9的数字
    • range(1, 10, 2):生成1, 3, 5, 7, 9

示例

python
# 遍历字符串
word = "Python"
for char in word:
    print(char)

# 遍历列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(f"我喜欢吃{fruit}")

# 打印1-100的数字
for i in range(1, 101):
    print(i)

# 批量处理数据
numbers = [1, 2, 3, 4, 5]
squared_numbers = []
for num in numbers:
    squared_numbers.append(num ** 2)
print(f"原始数据:{numbers}")
print(f"平方后:{squared_numbers}")

# 遍历字典
person = {"name": "zhangsan", "age": 18, "gender": "male"}
print("遍历键:")
for key in person:
    print(key)

print("遍历键值对:")
for key, value in person.items():
    print(f"{key}: {value}")

运行结果

P
y
t
h
o
n
我喜欢吃apple
我喜欢吃banana
我喜欢吃cherry
1
2
...
100
原始数据:[1, 2, 3, 4, 5]
平方后:[1, 4, 9, 16, 25]
遍历键:
name
age
gender
遍历键值对:
name: zhangsan
age: 18
gender: male

7.3 循环控制语句

循环控制语句用于控制循环的执行流程,包括break和continue。

break语句

  • 作用:跳出整个循环,不再执行循环中的后续代码
  • 应用场景:当找到目标数据后停止循环,或满足某个条件时提前结束循环

continue语句

  • 作用:跳过当前循环的剩余代码,进入下一次循环
  • 应用场景:跳过不符合条件的数据,只处理符合条件的数据

示例

python
# 遍历数字,跳过偶数
for i in range(1, 11):
    if i % 2 == 0:
        continue  # 跳过偶数
    print(i)

# 找到指定数字后停止循环
numbers = [5, 10, 15, 20, 25]
target = 15
for num in numbers:
    if num == target:
        print(f"找到目标数字:{num}")
        break  # 找到后停止循环
    print(f"当前数字:{num}")

# 结合while循环使用
count = 0
while count < 10:
    count += 1
    if count % 3 == 0:
        continue  # 跳过能被3整除的数
    if count == 8:
        break  # 当count等于8时停止循环
    print(count)

运行结果

1
3
5
7
9
当前数字:5
当前数字:10
找到目标数字:15
1
2
4
5
7

7.4 循环嵌套

循环嵌套是指在一个循环内部再使用另一个循环,用于处理更复杂的问题。

语法

python
# 外层循环
for 变量1 in 可遍历对象1:
    # 内层循环
    for 变量2 in 可遍历对象2:
        # 代码块
        代码1
        代码2
        ...

示例

python
# 打印九九乘法表
print("九九乘法表:")
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f"{j} × {i} = {i * j}", end="\t")
    print()  # 换行

# 打印三角形
rows = 5
for i in range(1, rows + 1):
    for j in range(1, i + 1):
        print("*")
    print()

运行结果

九九乘法表:
1 × 1 = 1    
1 × 2 = 2    2 × 2 = 4    
1 × 3 = 3    2 × 3 = 6    3 × 3 = 9    
1 × 4 = 4    2 × 4 = 8    3 × 4 = 12    4 × 4 = 16    
1 × 5 = 5    2 × 5 = 10    3 × 5 = 15    4 × 5 = 20    5 × 5 = 25    
1 × 6 = 6    2 × 6 = 12    3 × 6 = 18    4 × 6 = 24    5 × 6 = 30    6 × 6 = 36    
1 × 7 = 7    2 × 7 = 14    3 × 7 = 21    4 × 7 = 28    5 × 7 = 35    6 × 7 = 42    7 × 7 = 49    
1 × 8 = 8    2 × 8 = 16    3 × 8 = 24    4 × 8 = 32    5 × 8 = 40    6 × 8 = 48    7 × 8 = 56    8 × 8 = 64    
1 × 9 = 9    2 × 9 = 18    3 × 9 = 27    4 × 9 = 36    5 × 9 = 45    6 × 9 = 54    7 × 9 = 63    8 × 9 = 72    9 × 9 = 81    

*

*
*

*
*
*

*
*
*
*

*
*
*
*
*

实操案例:九九乘法表

案例:九九乘法表

python
"""
九九乘法表
功能:打印出完整的九九乘法表
"""

print("\n===== 九九乘法表 =====\n")

# 外层循环控制行数
for i in range(1, 10):
    # 内层循环控制每行的列数
    for j in range(1, i + 1):
        # 计算乘积
        product = i * j
        # 打印乘法表达式,使用end参数控制不换行
        print(f"{j} × {i} = {product:2d}", end="\t")
    # 每行结束后换行
    print()

print("\n====================\n")

运行结果

===== 九九乘法表 =====

1 × 1 =  1    
1 × 2 =  2    2 × 2 =  4    
1 × 3 =  3    2 × 3 =  6    3 × 3 =  9    
1 × 4 =  4    2 × 4 =  8    3 × 4 = 12    4 × 4 = 16    
1 × 5 =  5    2 × 5 = 10    3 × 5 = 15    4 × 5 = 20    5 × 5 = 25    
1 × 6 =  6    2 × 6 = 12    3 × 6 = 18    4 × 6 = 24    5 × 6 = 30    6 × 6 = 36    
1 × 7 =  7    2 × 7 = 14    3 × 7 = 21    4 × 7 = 28    5 × 7 = 35    6 × 7 = 42    7 × 7 = 49    
1 × 8 =  8    2 × 8 = 16    3 × 8 = 24    4 × 8 = 32    5 × 8 = 40    6 × 8 = 48    7 × 8 = 56    8 × 8 = 64    
1 × 9 =  9    2 × 9 = 18    3 × 9 = 27    4 × 9 = 36    5 × 9 = 45    6 × 9 = 54    7 × 9 = 63    8 × 9 = 72    9 × 9 = 81    

====================

实操案例:猜数字游戏

案例:猜数字游戏

python
"""
猜数字游戏
功能:计算机随机生成一个1-100的数字,用户猜测,直到猜对为止
"""

import random

# 生成1-100的随机数
secret_number = random.randint(1, 100)
guess_count = 0
max_guesses = 10

print("===== 猜数字游戏 =====")
print("我已经想好了一个1-100之间的数字,你有10次机会来猜测。")

# 循环猜测
while guess_count < max_guesses:
    # 获取用户输入
    guess = int(input("请输入你的猜测:"))
    guess_count += 1
    
    # 判断猜测是否正确
    if guess < secret_number:
        print(f"太小了!你还有{max_guesses - guess_count}次机会。")
    elif guess > secret_number:
        print(f"太大了!你还有{max_guesses - guess_count}次机会。")
    else:
        print(f"恭喜你!猜对了!你用了{guess_count}次机会。")
        break

# 次数用完
if guess_count == max_guesses:
    print(f"很遗憾,你没有猜对。我想的数字是{secret_number}。")

print("游戏结束!")

运行结果

===== 猜数字游戏 =====
我已经想好了一个1-100之间的数字,你有10次机会来猜测。
请输入你的猜测:50
太大了!你还有9次机会。
请输入你的猜测:25
太小了!你还有8次机会。
请输入你的猜测:37
太大了!你还有7次机会。
请输入你的猜测:31
太小了!你还有6次机会。
请输入你的猜测:34
恭喜你!猜对了!你用了5次机会。
游戏结束!

新手易错点

  • 死循环:循环条件永远成立,导致循环无限执行

    python
    # 错误示例
    count = 1
    while count <= 10:
        print(count)
    # 缺少count += 1,导致死循环
  • 循环嵌套缩进错误:内层循环的缩进必须正确

    python
    # 错误示例
    for i in range(3):
    print(i)  # 错误:缺少缩进
        for j in range(2):
            print(j)  # 错误:缩进不一致
  • break/continue使用场景混淆:break用于跳出整个循环,continue用于跳过当前循环

    python
    # 正确使用
    for i in range(10):
        if i == 5:
            break  # 跳出整个循环
        print(i)
    
    # 正确使用
    for i in range(10):
        if i % 2 == 0:
            continue  # 跳过当前循环
        print(i)

通过本章的学习,你已经掌握了Python的循环语句,包括while循环、for循环、循环控制语句和循环嵌套。这些是Python编程中非常重要的控制结构,用于重复执行代码块。在实际编程中,你会经常用到这些循环语句来处理各种需要重复操作的问题,如遍历数据、批量处理、游戏逻辑等。

© 2026 编程马·菜鸟教程 版权所有