Python循环分for和while:for用于遍历已知长度序列,基于迭代器;while用于条件不确定场景,依赖布尔表达式控制,需防死循环。

Python中循环主要用 for 和 while 两种,核心区别在于:for 适合遍历已知长度的序列(如列表、字符串、range),while 更适合条件不确定、需动态判断是否继续的场景。
for 循环:遍历数据最常用
for 的本质是迭代器遍历,不是靠下标,而是逐个取出元素。写法简洁,不易越界。
- 基本结构:for 变量 in 可迭代对象: 后跟缩进代码块
- 常用搭配:range() 生成数字序列,比如 for i in range(3): 相当于执行 0、1、2 三次
- 遍历列表时直接取值,无需下标:for item in ['a', 'b', 'c']: → item 依次是 'a'、'b'、'c'
- 需要下标和值?用 enumerate():for i, val in enumerate(['x','y']): → i=0,val='x';i=1,val='y'
while 循环:条件满足就一直跑
while 靠布尔表达式控制,只要结果为 True 就重复执行,必须在循环体内修改相关变量,否则容易死循环。
- 基本结构:while 条件表达式: + 缩进代码块(循环体)
- 典型用法:用户输入校验、文件读取、计数器累加等
- 务必包含能让条件变 False 的操作,例如:count = 0; while count
- 可用 break 提前退出,continue 跳过本次剩余逻辑,进入下一次判断
for 和 while 的选择建议
不用硬记规则,看任务本质:
立即学习“Python免费学习笔记(深入)”;
- 要处理一组明确的数据(列表、文件每行、字符串每个字符)→ 优先用 for
- 不知道要跑几次,只关心“什么时候停”(比如猜数字直到答对、网络请求直到成功)→ 选 while
- for 内部想提前结束用 break;while 中忘记更新条件变量,程序就会卡住
- 实际项目里 for 更常见,while 多用于事件驱动或状态等待类逻辑
容易踩的坑提醒
新手常在这里出错:
- for 循环中修改正在遍历的列表(比如删元素),会导致漏项——应改用列表推导式或反向遍历
- while 条件写成赋值 while x = 5:(语法错误),正确是 while x == 5:
- 缩进错误:循环体没对齐,Python 直接报 IndentationError
- 忘记写冒号 : ——这是语法强制要求,缺了就运行不了










