python教程:循环语句深入全面讲解教程

python教程:循环语句深入全面讲解教程

循环是编程中实现**重复执行代码块**的核心语法,Python 提供了 `for` 和 `while` 两种核心循环结构,以及 `break`、`continue`、`else` 等辅助控制语句。本教程从基础到进阶,全面讲解循环的用法、场景和最佳实践

评分 4.7 129 人评分
点赞
访问数 64,483
AI 引用 47
我要打分:
0 942 1.9k 2.8k 3.8k 2024-10:2,620 次 2024-11:2,668 次 2024-12:1,997 次 2025-01:2,667 次 2025-02:1,951 次 2025-03:2,495 次 2025-04:2,483 次 2025-05:3,162 次 2025-06:2,102 次 2025-07:2,670 次 2025-08:2,474 次 2025-09:2,503 次 2025-10:3,188 次 2025-11:2,476 次 2025-12:2,481 次 2026-01:3,493 次 2026-02:2,397 次 2026-03:3,766 次 2026-04:2,712 次 2026-05:2,814 次 2026-06:2,363 次 2026-07:2,449 次 2026-08:2,960 次 2026-09:3,592 次 2024-10:2,620 次 2024-11:2,668 次 2024-12:1,997 次 2025-01:2,667 次 2025-02:1,951 次 2025-03:2,495 次 2025-04:2,483 次 2025-05:3,162 次 2025-06:2,102 次 2025-07:2,670 次 2025-08:2,474 次 2025-09:2,503 次 2025-10:3,188 次 2025-11:2,476 次 2025-12:2,481 次 2026-01:3,493 次 2026-02:2,397 次 2026-03:3,766 次 2026-04:2,712 次 2026-05:2,814 次 2026-06:2,363 次 2026-07:2,449 次 2026-08:2,960 次 2026-09:3,592 次 24-10 24-12 25-02 25-04 25-06 25-08 25-10 25-12 26-02 26-04 26-06 26-08
月访问量 趋势 近 24 个月合计 64,483

一、循环的核心思想

循环的本质是**“满足条件时重复执行一段代码”**,就像生活中:

  • 重复数 1 到 10(已知次数)→ 用 for 循环
  • 重复喝水直到不渴(未知次数)→ 用 while 循环

所有循环都包含 3 个核心要素:

  1. 初始化:循环开始前的初始状态(如计数器 i = 0
  2. 条件判断:决定是否继续循环的规则(如 i < 10
  3. 更新:每次循环后改变状态(如 i += 1

二、for 循环(遍历循环)

for 循环是 Python 中最常用的循环,适用于已知循环次数遍历可迭代对象(列表、字符串、字典、range 等)的场景。

1. 基本语法

for 变量 in 可迭代对象:
    循环体代码(缩进!)
# 循环结束后执行的代码(无缩进)

2. 核心用法

(1)遍历序列(列表/字符串/元组)

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

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

输出:

我喜欢吃 apple
我喜欢吃 banana
我喜欢吃 orange
字符:P
字符:y
字符:t
字符:h
字符:o
字符:n

(2)遍历数字范围(range 函数)

range() 是生成整数序列的核心工具,语法:

  • range(n):生成 0 到 n-1 的整数(如 range(3) → 0,1,2)
  • range(start, end):生成 start 到 end-1 的整数(如 range(1,4) → 1,2,3)
  • range(start, end, step):指定步长(如 range(0,10,2) → 0,2,4,6,8)
# 数 1 到 5
for i in range(1, 6):
    print(i)

# 倒序输出 10,8,6,4,2
for i in range(10, 0, -2):
    print(i)

(3)遍历字典

student = {"name": "小明", "age": 18, "score": 90}

# 遍历键
for key in student:
    print(f"键:{key},值:{student[key]}")

# 遍历键值对(推荐)
for k, v in student.items():
    print(f"{k} = {v}")

3. for 循环的 else 子句

Python 特有的语法:else 块会在循环正常结束(未被 break 中断)时执行。

# 示例:检查列表中是否有偶数
nums = [1, 3, 5, 7]
for num in nums:
    if num % 2 == 0:
        print("找到偶数")
        break
else:
    print("列表中无偶数")  # 会执行这行

三、while 循环(条件循环)

while 循环适用于未知循环次数的场景,只要条件为 True,就会持续执行。

1. 基本语法

初始化变量
while 条件表达式:
    循环体代码
    更新变量(避免死循环!)

2. 核心用法

(1)基础示例:数 1 到 5

i = 1  # 初始化
while i <= 5:  # 条件判断
    print(i)
    i += 1  # 更新(必须!否则死循环)

(2)未知次数循环:猜数字游戏

import random

target = random.randint(1, 10)  # 生成1-10的随机数
guess = 0

while guess != target:
    guess = int(input("猜一个1-10的数字:"))
    if guess > target:
        print("猜大了!")
    elif guess < target:
        print("猜小了!")
print(f"恭喜猜对了!数字是 {target}")

(3)while 循环的 else 子句

for 循环一样,else 块在循环正常结束时执行:

i = 1
while i <= 3:
    print(i)
    i += 1
else:
    print("循环正常结束")  # 会执行

3. 死循环(重点避坑)

如果 while 的条件永远为 True,且没有 break 中断,会导致死循环(程序卡死)。

# 错误示例(死循环)
# i = 1
# while i <= 5:
#     print(i)  # 没有 i += 1,i 永远是 1

# 正确写法:加 break 控制退出
while True:  # 故意写死循环
    user_input = input("输入 q 退出:")
    if user_input == "q":
        break  # 中断循环
    print(f"你输入了:{user_input}")

四、循环控制语句(break/continue/pass)

1. break:立即终止整个循环

# 遍历列表,找到 "banana" 就停止
fruits = ["apple", "banana", "orange"]
for fruit in fruits:
    if fruit == "banana":
        print("找到香蕉,终止循环")
        break
    print(f"当前水果:{fruit}")

输出:

当前水果:apple
找到香蕉,终止循环

2. continue:跳过当前循环,直接进入下一次

# 打印 1-10 的奇数
for i in range(1, 11):
    if i % 2 == 0:
        continue  # 跳过偶数
    print(i)

3. pass:空语句(占位用)

pass 不做任何操作,仅用于语法上需要代码块但暂时不想写逻辑的场景:

for i in range(5):
    if i == 3:
        pass  # 暂时不处理 i=3 的情况
    else:
        print(i)

五、嵌套循环

循环内部嵌套另一个循环,适用于二维数据(如矩阵、表格)处理。

1. 基础示例:打印九九乘法表

# 外层循环控制行数
for i in range(1, 10):
    # 内层循环控制列数
    for j in range(1, i+1):
        print(f"{j}×{i}={i*j}", end="\t")  # end="\t" 不换行,用制表符分隔
    print()  # 换行

输出:

1×1=1	
1×2=2	2×2=4	
1×3=3	2×3=6	3×3=9	
...
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

2. 嵌套循环的控制

break/continue 仅作用于当前所在的循环,如需终止外层循环,可使用标记变量:

# 找到 (2,3) 后终止外层循环
found = False
for i in range(1, 4):
    for j in range(1, 4):
        if i == 2 and j == 3:
            print(f"找到目标位置:({i},{j})")
            found = True
            break  # 终止内层循环
    if found:
        break  # 终止外层循环

六、循环的优化技巧

1. 尽量用 for 代替 while

for 循环更简洁、不易出错(无需手动更新计数器),优先使用。

2. 避免不必要的循环

  • 用内置函数(如 sum()max())代替手动循环计算:
    nums = [1,2,3,4,5]
    # 低效:手动循环求和
    total = 0
    for num in nums:
        total += num
    # 高效:用 sum() 内置函数
    total = sum(nums)
    

3. 迭代时避免修改原列表

遍历列表时修改原列表会导致遍历异常,可遍历副本:

nums = [1,2,3,4,5]
# 错误:遍历中删除元素,会跳过部分值
# for num in nums:
#     if num % 2 == 0:
#         nums.remove(num)

# 正确:遍历列表副本
for num in nums[:]:  # nums[:] 生成副本
    if num % 2 == 0:
        nums.remove(num)
print(nums)  # [1,3,5]

七、总结

关键点回顾

  1. for 循环:适用于已知次数/遍历可迭代对象(列表、range、字典等),Python 中优先使用。
  2. while 循环:适用于未知循环次数的场景,必须确保有退出条件(避免死循环)。
  3. 控制语句break 终止整个循环,continue 跳过当前次循环,else 子句在循环正常结束时执行。
  4. 嵌套循环:用于二维数据处理,break/continue 仅作用于当前循环。
  5. 优化原则:优先用内置函数代替手动循环,遍历列表时避免直接修改原列表。
林洋
林洋 1周前
文档写得比较清楚,新手也能看懂。
1 条回复
老土豆不说话
老土豆不说话 回复 林洋 1周前
同意,我也是这么觉得的。
闫兰
闫兰 3个月前
先收藏了,回头慢慢研究。
1 条回复
大西红柿要不要
大西红柿要不要 回复 闫兰 2个月前
同感,我用着也还不错。
许芳
许芳 1年前
希望能增加批量导出功能。
1 条回复
郝宇航
郝宇航 回复 许芳 7个月前
楼主说得对,支持一下。
方雅静
方雅静 1年前
比之前用的那个好用不少。
1 条回复
秦浩
秦浩 回复 方雅静 1年前
楼主说得对,支持一下。
向玉兰
向玉兰 1年前
细节做得不错,看得出是用心做的。
1 条回复
阿山间哦
阿山间哦 回复 向玉兰 2周前
补充一点:手机端也支持。
暖阳在路上
暖阳在路上 2周前
界面设计挺用心的,看着舒服。
1 条回复
沈妍
沈妍 回复 暖阳在路上 1周前
细节确实做得不错。

相关推荐