Python for循环
for循环是Python编程中最重要的结构之一,它允许我们重复执行一段代码多次,非常适合处理列表、字符串等序列类型的数据。
为什么需要循环?
想象一下你需要打印数字1到100。没有循环的话,你需要写100行print语句!使用循环,你只需几行代码就能完成这个任务。
for循环的基本语法
Python中的for循环用于遍历任何序列(如列表、元组、字符串)中的每个元素:
for 变量 in 序列:
# 执行代码块
# 执行代码块
for循环执行过程可视化
遍历列表
列表是Python中最常用的数据结构之一,for循环非常适合处理列表:
# 遍历水果列表
fruits = ["苹果", "香蕉", "橙子", "西瓜"]
for fruit in fruits:
print("我喜欢吃" + fruit)
fruits = ["苹果", "香蕉", "橙子", "西瓜"]
for fruit in fruits:
print("我喜欢吃" + fruit)
小狗
小猫
兔子
熊猫
狮子
使用range()函数
range()函数可以生成数字序列,常与for循环一起使用:
# 打印0到4
for i in range(5):
print(i)
# 打印1到5
for i in range(1, 6):
print(i)
# 打印0到10的偶数
for i in range(0, 11, 2):
print(i)
for i in range(5):
print(i)
# 打印1到5
for i in range(1, 6):
print(i)
# 打印0到10的偶数
for i in range(0, 11, 2):
print(i)
循环中的变量变化
理解循环中变量的变化对掌握for循环非常重要:
| 循环次数 | 变量 i 的值 | 输出 |
|---|---|---|
| 第一次 | 0 | 当前数字: 0 |
| 第二次 | 1 | 当前数字: 1 |
| 第三次 | 2 | 当前数字: 2 |
| 第四次 | 3 | 当前数字: 3 |
| 第五次 | 4 | 当前数字: 4 |
for循环执行步骤
第一步: 初始化循环变量(从序列中取第一个值)
第二步: 执行循环体内的代码
第三步: 更新循环变量(取序列中的下一个值)
第四步: 重复步骤2-3,直到序列中的所有元素都被处理
第五步: 循环结束,执行循环后的代码
嵌套循环
在循环内部放置另一个循环,称为嵌套循环:
# 打印乘法表的一部分
for i in range(1, 4): # 外层循环
for j in range(1, 4): # 内层循环
print(f"{i} × {j} = {i*j}")
print("----------") # 每行结束后打印分隔线
for i in range(1, 4): # 外层循环
for j in range(1, 4): # 内层循环
print(f"{i} × {j} = {i*j}")
print("----------") # 每行结束后打印分隔线
循环与计数器/累加器结合
在实际应用中,我们经常将循环与计数器、累加器结合使用:
计数器应用
# 统计列表中及格成绩的数量
scores = [85, 92, 58, 67, 90, 76]
count = 0 # 计数器
for score in scores:
if score >= 60:
count += 1 # 计数增加
print("及格人数:", count)
scores = [85, 92, 58, 67, 90, 76]
count = 0 # 计数器
for score in scores:
if score >= 60:
count += 1 # 计数增加
print("及格人数:", count)
计数器用于记录满足条件的元素数量
累加器应用
# 计算购物车商品总价
prices = [29.9, 15.5, 42.0, 8.8, 99.9]
total = 0.0 # 累加器
for price in prices:
total += price # 累加价格
print("总价: ¥", total)
prices = [29.9, 15.5, 42.0, 8.8, 99.9]
total = 0.0 # 累加器
for price in prices:
total += price # 累加价格
print("总价: ¥", total)
累加器用于计算所有元素的总和
练习时间
练习1:打印星星图案
使用for循环打印以下图案:
* ** *** **** *****
for i in range(1, 6):
print('*' * i)
print('*' * i)
练习2:寻找最大数
给定一个数字列表:numbers = [12, 45, 8, 92, 34, 67]
编写代码找出列表中的最大数
numbers = [12, 45, 8, 92, 34, 67]
max_num = numbers[0] # 假设第一个数是最大的
for num in numbers:
if num > max_num:
max_num = num
print("最大的数字是:", max_num)
max_num = numbers[0] # 假设第一个数是最大的
for num in numbers:
if num > max_num:
max_num = num
print("最大的数字是:", max_num)
重要提示
在使用for循环时,请注意以下常见错误:
- 忘记在循环语句末尾添加冒号(:)
- 忘记缩进循环体中的代码
- 在循环中修改正在迭代的序列(可能导致意外结果)
- 使用错误的循环变量名称