Python for 循环完全指南:从入门到精通
@ TOC
🐍 Python for 循环完全指南:从入门到精通
Python 的 for 循环是编程中最常用、最强大的工具之一。本文将从基础到进阶,带你全面掌握 for 循环的各种用法。
一、for 循环基础语法
Python 的 for 循环用于遍历序列(如列表、元组、字符串等)。
基本语法
⦆⦆⦆python
遍历列表
fruits = [‘苹果’, ‘香蕉’, ‘橙子’]
for fruit in fruits:
print(f"我喜欢吃{fruit}")
⦆⦆⦆
输出结果
⦆⦆⦆
我喜欢吃苹果
我喜欢吃香蕉
我喜欢吃橙子
⦆⦆⦆
遍历字符串
⦆⦆⦆python
for char in “Python”:
print(char)
⦆⦆⦆
二、range() 函数三种用法
⦆⦆range()⦆⦆ 是 for 循环的好搭档,用于生成数字序列。
用法 1:range(stop)
⦆⦆⦆python
生成 0 到 4
for i in range(5):
print(i) # 输出: 0, 1, 2, 3, 4
⦆⦆⦆
用法 2:range(start, stop)
⦆⦆⦆python
生成 1 到 5
for i in range(1, 6):
print(i) # 输出: 1, 2, 3, 4, 5
⦆⦆⦆
用法 3:range(start, stop, step)
⦆⦆⦆python
生成 0, 2, 4, 6, 8
for i in range(0, 10, 2):
print(i)
倒计时
for i in range(10, 0, -1):
print(i)
⦆⦆⦆
🎯 实战:乘法表
⦆⦆⦆python
打印 9x9 乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}×{i}={i*j}“, end=”\t")
print() # 换行
⦆⦆⦆
三、enumerate() 函数
同时获取索引和元素,告别手动计数!
基础用法
⦆⦆⦆python
colors = [‘红’, ‘绿’, ‘蓝’]
普通方式(不推荐)
for i in range(len(colors)):
print(f"{i}: {colors[i]}")
使用 enumerate(推荐 ✓)
for index, color in enumerate(colors):
print(f"{index}: {color}")
⦆⦆⦆
指定起始索引
⦆⦆⦆python
从 1 开始计数
for num, student in enumerate([‘Alice’, ‘Bob’, ‘Charlie’], start=1):
print(f"学号{num}: {student}")
⦆⦆⦆
四、break / continue / else 控制语句
break - 立即退出循环
⦆⦆⦆python
找到第一个偶数就停止
numbers = [1, 3, 5, 8, 9, 10]
for num in numbers:
if num % 2 == 0:
print(f"找到偶数: {num}")
break
⦆⦆⦆
continue - 跳过当前迭代
⦆⦆⦆python
打印所有奇数,跳过偶数
for i in range(1, 11):
if i % 2 == 0:
continue
print(i) # 输出: 1, 3, 5, 7, 9
⦆⦆⦆
else - 循环正常完成时执行
⦆⦆⦆python
检查是否为质数
n = 17
for i in range(2, n):
if n % i == 0:
print(f"{n} 不是质数")
break
else:
# 只有循环没有被 break 时才会执行
print(f"{n} 是质数")
⦆⦆⦆
五、列表推导式
一行代码创建列表,简洁又高效!
基础语法
⦆⦆⦆python
传统方式
squares = []
for x in range(10):
squares.append(x**2)
列表推导式
squares = [x**2 for x in range(10)]
⦆⦆⦆
带条件的推导式
⦆⦆⦆python
只保留偶数
evens = [x for x in range(20) if x % 2 == 0]
双重循环
pairs = [(x, y) for x in range(3) for y in range(3)]
⦆⦆⦆
六、遍历字典的三种方式
⦆⦆⦆python
student = {‘name’: ‘小明’, ‘age’: 18, ‘grade’: ‘A’}
方式 1:遍历键(默认)
for key in student:
print(key)
方式 2:遍历键值对
for key, value in student.items():
print(f"{key}: {value}")
方式 3:分别遍历键和值
for key in student.keys():
print(f"键: {key}")
for value in student.values():
print(f"值: {value}")
⦆⦆⦆
七、实际应用案例
案例 1:统计词频
⦆⦆⦆python
text = “apple banana apple cherry banana apple”
words = text.split()
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
print(word_count)
{‘apple’: 3, ‘banana’: 2, ‘cherry’: 1}
使用 collections.Counter 更简洁
from collections import Counter
word_count = Counter(words)
⦆⦆⦆
案例 2:逐行读取文件
⦆⦆⦆python
方式 1:直接遍历文件对象
with open(‘data.txt’, ‘r’, encoding=‘utf-8’) as f:
for line in f:
print(line.strip()) # strip() 移除换行符
方式 2:读取所有行
with open(‘data.txt’, ‘r’, encoding=‘utf-8’) as f:
lines = f.readlines()
for i, line in enumerate(lines, 1):
print(f"第{i}行: {line.strip()}")
⦆⦆⦆
案例 3:批量处理数据
⦆⦆⦆python
批量重命名文件
import os
folder = ‘./images’
for i, filename in enumerate(os.listdir(folder)):
if filename.endswith(‘.jpg’):
new_name = f"img_{i:03d}.jpg"
os.rename(
os.path.join(folder, filename),
os.path.join(folder, new_name)
)
print(f"重命名: {filename} -> {new_name}")
⦆⦆⦆
八、总结表格
| 特性 | 语法 | 适用场景 |
|---|---|---|
| 基础 for | ⦆for x in iterable:⦆ | 遍历列表、字符串等 |
| range() | ⦆range(start, stop, step)⦆ | 需要索引或数字序列 |
| enumerate() | ⦆enumerate(iterable, start)⦆ | 同时需要索引和元素 |
| break | ⦆break⦆ | 提前退出循环 |
| continue | ⦆continue⦆ | 跳过当前迭代 |
| else | ⦆for…else⦆ | 循环正常完成后的处理 |
| 列表推导式 | ⦆[expr for x in iterable if cond]⦆ | 快速创建列表 |
| 字典遍历 | ⦆.items() / .keys() / .values()⦆ | 遍历字典数据 |
💡 小贴士
- 优先使用 enumerate() - 比 ⦆range(len(list))⦆ 更 Pythonic
- 善用列表推导式 - 简洁高效,但不要太复杂
- 注意迭代器消耗 - 某些可迭代对象只能遍历一次
- 使用 with 语句 - 处理文件时自动关闭资源
希望这篇教程能帮助你更好地掌握 Python for 循环!如果有任何问题,欢迎在评论区留言交流。
标签: #Python #编程基础 #for循环 #Python教程
更多推荐



所有评论(0)