for循环

学习如何使用for循环遍历序列或集合中的元素,高效处理重复任务。

基本用法

for循环用于遍历任何序列(如列表、元组、字符串)或可迭代对象中的元素。

基本语法:

for 变量 in 序列:
    代码块

循环会依次将序列中的每个元素赋值给变量,然后执行缩进的代码块。

示例:遍历列表

# 遍历水果列表
fruits = ["苹果", "香蕉", "橙子", "葡萄"]
for fruit in fruits:
    print(fruit)

运行上面的代码,输出结果为:
苹果
香蕉
橙子
葡萄

遍历不同类型的数据

遍历字符串

# 遍历字符串中的每个字符
word = "Python"
for char in word:
    print(char)

运行上面的代码,输出结果为:
P
y
t
h
o
n

遍历元组

# 遍历元组中的元素
colors = ("红色", "绿色", "蓝色")
for color in colors:
    print(color)

运行上面的代码,输出结果为:
红色
绿色
蓝色

遍历字典

# 遍历字典中的键和值
scores = {"语文": 90, "数学": 85, "英语": 88}
for subject, score in scores.items():
    print(f"{subject}: {score}分")

运行上面的代码,输出结果为:
语文: 90分
数学: 85分
英语: 88分

range()函数

range()函数用于生成一个整数序列,常用于for循环中。

语法:
range(stop)
range(start, stop)
range(start, stop, step)

示例1:range(stop)

# 生成0到4的整数序列
for i in range(5):
    print(i)

运行上面的代码,输出结果为:
0
1
2
3
4

示例2:range(start, stop)

# 生成5到9的整数序列
for i in range(5, 10):
    print(i)

运行上面的代码,输出结果为:
5
6
7
8
9

示例3:range(start, stop, step)

# 生成1到10的奇数序列
for i in range(1, 11, 2):
    print(i)

运行上面的代码,输出结果为:
1
3
5
7
9

嵌套for循环

在for循环内部可以再次使用for循环,这称为嵌套for循环。

示例:打印乘法表

# 打印9x9乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        print(f"{j}×{i}={i*j}", end="\t")
    print() # 换行

运行上面的代码,将输出9x9乘法表。

故事化案例:水果摊销售统计

小明的妈妈经营着一个水果摊,让我们帮助她统计一周的水果销售情况吧!

场景:水果摊一周的销售数据如下:

  • 苹果:周一5斤,周二7斤,周三3斤,周四6斤,周五8斤,周六10斤,周日12斤
  • 香蕉:周一3斤,周二5斤,周三2斤,周四4斤,周五6斤,周六9斤,周日7斤
  • 橙子:周一4斤,周二2斤,周三5斤,周四3斤,周五7斤,周六8斤,周日6斤

代码实现:

# 水果摊销售统计
# 定义每天的销售量
sales = {
    "苹果": [5, 7, 3, 6, 8, 10, 12],
    "香蕉": [3, 5, 2, 4, 6, 9, 7],
    "橙子": [4, 2, 5, 3, 7, 8, 6]
}
# 定义星期
weekdays = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]

# 计算每种水果的总销量
for fruit, amounts in sales.items():
    total = sum(amounts)
    print(f"{fruit}一周总销量: {total}斤")

# 找出每天的销售冠军
print("\n每天的销售冠军:")
for i in range(7):
    max_sale = 0
    champion = ""
    for fruit, amounts in sales.items():
        if amounts[i] > max_sale:
            max_sale = amounts[i]
            champion = fruit
    print(f"{weekdays[i]}: {champion} ({max_sale}斤)")

运行上面的代码,将输出每种水果的总销量和每天的销售冠军。

练习题

1 计算列表元素和

编写一个程序,计算列表中所有元素的和。

2 打印星号三角形

编写一个程序,使用for循环打印一个5行的星号三角形。

3 统计字符串中字符出现次数

编写一个程序,统计字符串中每个字符出现的次数。