Python 循环语句(一文讲透)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

截止目前, 星球 内专栏累计输出 90w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 3100+ 小伙伴加入学习 ,欢迎点击围观

前言

在编程的世界中,循环语句如同“永不停歇的齿轮”,驱动着代码高效执行重复性任务。无论是计算阶乘、遍历数据集,还是构建复杂的算法,Python 的循环语句都是开发者不可或缺的工具。对于编程初学者而言,理解循环的逻辑和用法,是迈向进阶开发的关键一步。本文将从基础语法到实战案例,结合形象比喻和代码示例,系统讲解 Python 中的 循环语句,帮助读者快速掌握这一核心技能。


Python 循环语句的核心概念

1. 什么是循环?

循环(Loop)是编程中一种重复执行代码块的结构。它允许开发者通过少量代码完成大量重复操作,例如遍历列表、生成序列或持续监听用户输入。在 Python 中,循环主要分为两种类型:

  • while 循环:当满足条件时,重复执行代码块。
  • for 循环:遍历可迭代对象(如列表、字符串)的元素,并对每个元素执行操作。

2. 循环的核心作用

  • 减少重复代码:避免手动编写相同逻辑的代码多次。
  • 自动化任务:例如批量处理文件、计算复杂数值等。
  • 数据处理:遍历列表、字典等数据结构,提取或修改数据。

Python 的 while 循环

1. 基础语法与逻辑

while 循环的语法结构如下:

while 条件表达式:  
    # 循环体(重复执行的代码)  

其执行流程是:

  1. 判断条件表达式是否为 True
  2. 如果为 True,执行循环体内的代码;
  3. 循环结束后,再次回到步骤 1,直到条件为 False

示例:计算 1 到 10 的和

sum_result = 0  
counter = 1  
while counter <= 10:  
    sum_result += counter  
    counter += 1  
print("总和为:", sum_result)  # 输出:总和为: 55  

关键点解析

  • counter += 1 是必须的,否则会形成无限循环(条件永远为 True)。
  • 可以通过 breakcontinue 语句控制循环的提前终止或跳过当前迭代。

2. while 循环的典型场景

  • 用户交互:例如持续询问用户输入,直到输入特定值。
  • 实时监控:如循环检查某个传感器的数值变化。

Python 的 for 循环

1. 基础语法与逻辑

for 循环的语法结构为:

for 变量 in 可迭代对象:  
    # 循环体  

其执行流程是:

  1. 遍历可迭代对象中的每个元素;
  2. 将当前元素赋值给变量;
  3. 执行循环体内的代码。

示例:遍历列表并打印元素

fruits = ["苹果", "香蕉", "橙子"]  
for fruit in fruits:  
    print(fruit)  

2. for 循环的增强功能

(1) range() 函数

用于生成数字序列,常与 for 循环配合使用。

for i in range(5):  
    print(i)  

range() 还支持指定起始值、结束值和步长:

for i in range(1, 11, 2):  
    print(i)  

(2) 遍历字符串

字符串是字符的集合,可直接通过 for 循环遍历:

word = "Python"  
for char in word:  
    print(char.upper())  

(3) 遍历字典

可以通过 items() 方法同时获取键和值:

student_scores = {"Alice": 90, "Bob": 85, "Charlie": 95}  
for name, score in student_scores.items():  
    print(f"{name} 的成绩是 {score}")  

循环的进阶技巧

1. 嵌套循环

当循环体内包含另一个循环时,称为嵌套循环。这常用于处理多维数据(如矩阵运算)。

示例:打印乘法表

for i in range(1, 10):  
    for j in range(1, i+1):  
        print(f"{j}×{i}={i*j}", end=" ")  
    print()  

2. 控制循环的 breakcontinue

  • break:立即终止整个循环。
  • continue:跳过当前迭代,进入下一次循环。

示例:寻找第一个偶数

numbers = [1, 3, 5, 4, 7, 8]  
for num in numbers:  
    if num % 2 == 0:  
        print("找到第一个偶数:", num)  
        break  

3. else 子句

循环结束后(未被 break 终止时),可执行 else 块中的代码。

示例:检测素数

num = 17  
for i in range(2, int(num**0.5)+1):  
    if num % i == 0:  
        print(f"{num} 不是素数")  
        break  
else:  
    print(f"{num} 是素数")  

列表推导式:循环的“速记法”

列表推导式(List Comprehension)是 Python 中一种简洁的循环语法,可快速生成列表。其基本形式为:

[表达式 for 变量 in 可迭代对象 if 条件]  

示例:生成平方数列表

squares = [x**2 for x in range(1, 6)]  
print(squares)  # 输出:[1, 4, 9, 16, 25]  

对比传统 for 循环:

squares = []  
for x in range(1, 6):  
    squares.append(x**2)  

列表推导式的优势在于代码更简洁,同时提升可读性。


循环性能优化与陷阱

1. 避免无限循环

while 循环的条件或 for 循环的迭代对象不满足终止条件时,程序将无限执行。例如:

counter = 0  
while counter < 5:  
    print("计数器:", counter)  
counter = 0  
while counter < 5:  
    print("计数器:", counter)  
    counter += 1  

2. 循环内修改迭代对象

在遍历列表时,直接修改列表可能导致意外行为。例如:

my_list = [1, 2, 3]  
for item in my_list:  
    if item == 2:  
        my_list.remove(item)  
print(my_list)  # 输出:[1, 3](预期可能为 [1, 3],但需谨慎操作)  

建议通过生成新列表或逆序遍历来规避此类问题。

3. 选择更高效的循环结构

  • 避免嵌套循环的高复杂度:例如 O(n²) 的嵌套循环在大数据量下可能效率低下。
  • 使用生成器:通过 yield 关键字实现延迟计算,节省内存。

实战案例:斐波那契数列生成

斐波那契数列是经典算法问题,其前两项为 0 和 1,后续项为前两项之和。我们可以用循环实现其生成。

方法 1:while 循环

n = 10  
a, b = 0, 1  
result = []  
while len(result) < n:  
    result.append(a)  
    a, b = b, a + b  
print(result)  # 输出:[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]  

方法 2:for 循环

n = 10  
a, b = 0, 1  
fib_list = [a]  
for _ in range(n-1):  
    a, b = b, a + b  
    fib_list.append(a)  
print(fib_list)  

结论

Python 的循环语句是编程中解决重复性任务的核心工具。通过掌握 whilefor 循环的基础语法,以及列表推导式、break/continue 等进阶技巧,开发者可以高效地处理从简单遍历到复杂算法的各类场景。

本文通过案例和比喻,系统梳理了循环语句的逻辑与用法,帮助读者逐步构建扎实的编程基础。无论是计算数学问题、处理数据集,还是开发实际应用,循环语句都是通往更复杂编程世界的桥梁。

实践建议:尝试用循环解决日常问题(如文件批量重命名、数据统计),并结合调试工具观察循环的执行过程。只有通过不断练习,才能真正掌握这一强大工具。


通过本文的学习,读者应能理解 Python 循环语句的核心原理,并在实际开发中灵活运用。循环不仅是代码的“重复执行器”,更是开发者思维的“逻辑放大器”。

最新发布