Python3 循环语句
Python3 循环语句(Loop Statements)
🎯 学习目标
掌握 Python 中的循环结构,包括 for
和 while
的基本用法与高级技巧。理解循环在数据遍历、重复任务处理、自动化流程控制中的核心作用。能够在实际项目中灵活使用循环进行高效编程。
🔑 核心重点
分类 | 内容 |
---|---|
基本结构 | for 遍历可迭代对象;while 满足条件时持续执行 |
控制语句 | break , continue , else 在循环中的应用 |
实际应用场景 | 数据清洗、批量操作、状态监控、模拟过程等 |
性能优化技巧 | 使用生成器、避免无限循环、合理使用 else 提升代码质量 |
📚 详细讲解
一、什么是循环?
循环是程序中用于重复执行一段代码块的结构。Python 支持两种主要的循环:
for
:用于遍历序列(如列表、字符串、元组)或任何可迭代对象while
:只要条件为真就一直执行
二、for
循环详解
✅ 基本语法:
for 变量 in 可迭代对象:
# 执行代码块
✅ 示例:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
📌 适用对象:
- 列表、元组、字符串、字典、集合、range()、文件行等
✅ 遍历字典
user = {"name": "Alice", "age": 25, "city": "Beijing"}
for key, value in user.items():
print(f"{key}: {value}")
✅ range()
函数
用于生成数字序列:
for i in range(5):
print(i) # 输出 0~4
支持起始和步长:
for i in range(1, 10, 2):
print(i) # 输出 1, 3, 5, 7, 9
三、while
循环详解
✅ 基本语法:
while 条件:
# 执行代码块
✅ 示例:
count = 0
while count < 5:
print(count)
count += 1
📌 注意:要确保循环最终能退出,否则可能造成死循环
✅ 无限循环示例(慎用):
while True:
user_input = input("请输入内容(输入 quit 退出):")
if user_input == "quit":
break
print(f"你输入的是:{user_input}")
四、循环控制语句
语句 | 描述 |
---|---|
break |
终止当前循环 |
continue |
跳过当前循环体,进入下一次循环 |
else |
当循环正常结束(非 break)时执行 |
✅ 示例:查找质数
num = 17
for i in range(2, num):
if num % i == 0:
print(f"{num} 不是质数")
break
else:
print(f"{num} 是质数")
五、嵌套循环
在一个循环体内再嵌入另一个循环。
✅ 示例:打印乘法表
for i in range(1, 10):
for j in range(1, i+1):
print(f"{j}*{i}={i*j}", end=" ")
print()
📌 建议:避免过多层嵌套,保持逻辑清晰。
六、简洁写法与高级技巧
✅ 列表推导式替代简单循环
squares = [x**2 for x in range(6)]
print(squares) # [0, 1, 4, 9, 16, 25]
✅ 使用 enumerate()
获取索引和值
words = ["cat", "window", "defenestrate"]
for index, word in enumerate(words):
print(f"第 {index + 1} 个单词是:{word}")
✅ 使用 zip()
同时遍历多个序列
names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 22]
for name, age in zip(names, ages):
print(f"{name} 的年龄是 {age}")
⚠️ 注意事项
for
循环适用于已知迭代次数的场景,while
适用于未知但有条件控制的场景- 不要在遍历过程中修改正在遍历的对象(如删除/添加元素)
- 使用
else
时注意是否被break
中断 - 对于大范围的数据遍历,优先考虑使用生成器(如
itertools
)提升性能 - 避免“死循环”,尤其是
while
循环中未更新判断条件的情况
🧪 实际案例分析
📌 场景:模拟银行取款系统
用户登录后可以查询余额、取款、存款、退出系统。
balance = 1000
while True:
print("\n欢迎使用自动取款机")
print("1. 查询余额")
print("2. 取款")
print("3. 存款")
print("4. 退出")
choice = input("请选择操作(1-4):")
if choice == '1':
print(f"您的当前余额为:{balance} 元")
elif choice == '2':
amount = int(input("请输入取款金额:"))
if amount > balance:
print("余额不足!")
else:
balance -= amount
print(f"取款成功,剩余余额:{balance} 元")
elif choice == '3':
amount = int(input("请输入存款金额:"))
balance += amount
print(f"存款成功,当前余额:{balance} 元")
elif choice == '4':
print("感谢使用,再见!")
break
else:
print("无效选项,请重新选择。")
📌 应用:
- 用户交互系统
- 状态机设计
- 批量数据处理
- 自动化脚本编写
🧩 拓展练习(动手实践)
- 编写一个程序,计算从 1 到 n 的所有奇数之和。
- 输入一个字符串,统计其中每个字符出现的次数(忽略大小写)。
- 实现一个猜数字游戏:随机生成 1~100 的整数,让用户猜测,提示偏大或偏小,直到正确为止。
- 使用循环实现冒泡排序算法。
- 编写程序,读取一个文本文件并统计每行的字符数。
📚 推荐阅读
- Python 官方文档 - 控制流
- 《流畅的 Python》第 1 章 - 流程控制与函数基础
- 廖雪峰 Python 教程 - 循环
- 菜鸟教程 - Python 循环语句
- Real Python - Loops in Python
🧭 下一步建议
- 下一章学习内容:《Python3 函数详解》
- 掌握函数定义、参数传递、返回值、作用域等基础知识
- 学习函数装饰器、递归、lambda 表达式等高级用法
- 探索函数模块化开发思想与高阶函数概念
- 结合循环与函数知识,尝试编写结构清晰、功能完整的 Python 程序
如果你希望我为你提供:
- Python 循环语句速查表 PDF
- 更多实战项目练习题(如菜单系统、猜数字游戏、排序算法实现等)
- 循环高级技巧详解(如链式循环、迭代器、生成器、协程等)
- 视频教学资源推荐(中文讲解)
欢迎随时告诉我 😊