1. for循环简介:
Python中的for循环用于遍历序列(如列表、元组、字符串)或可迭代对象。for循环的执行过程是:依次取出序列中的每个元素,然后执行循环体中的代码。for循环是Python中最常用的循环结构之一,适用于已知迭代次数的场景。
2. 基本语法:
for 变量 in 可迭代对象: # 循环体代码块 # 每次循环都会执行这里的代码
3. 流程图:
4. 基础示例:
示例 1:遍历列表
①. 遍历水果列表fruits = ["苹果", "香蕉", "橙子", "葡萄", "草莓"]print("我喜欢的水果:")for fruit in fruits: print(f" - {fruit}")# 输出:# 我喜欢的水果:# - 苹果# - 香蕉# - 橙子# - 葡萄# - 草莓
示例 2:遍历字符串
①. 遍历字符串中的每个字符word = "Python"print("单词 'Python' 的每个字母:")for letter in word: print(f" {letter}")# 输出:# 单词 'Python' 的每个字母:# P# y# t# h# o# n
示例 3:计算列表元素总和
①. 计算考试成绩总分scores = [85, 92, 78, 90, 88]total = 0for score in scores: total += scoreaverage = total / len(scores)print(f"总分:{total}")print(f"平均分:{average:.2f}")# 输出:# 总分:433# 平均分:86.60
示例 4:计算斐波那契数列
# 计算前10个斐波那契数a, b = 0, 1for _ in range(10): print(a, end=" ") a, b = b, a + b
5. 使用 range() 函数:
🎯range() 函数语法
range(stop) # 生成 0 到 stop-1 的整数序列range(start, stop) # 生成 start 到 stop-1 的整数序列range(start, stop, step) # 生成 start 到 stop-1 的整数序列,步长为 step
🧭参数说明:
start:起始值(包含),默认为 0
stop:结束值(不包含)
step:步长(增量),默认为 1
⚡注意事项:
示例 1:使用 range() 生成数字序列
①. 打印 1 到 5 的数字print("数字 1 到 5:")for i in range(1, 6): print(i)# 输出:# 数字 1 到 5:# 1# 2# 3# 4# 5②. 指定步长print("\n10 以内的偶数:")for i in range(0, 11, 2): print(i)# 输出:# 10 以内的偶数:# 0# 2# 4# 6# 8# 10
示例 2:使用 range() 遍历列表索引
①. 通过索引遍历列表colors = ["红色", "绿色", "蓝色", "黄色", "紫色"]print("颜色列表及其位置:")for i in range(len(colors)): print(f" 位置 {i}: {colors[i]}")# 输出:# 颜色列表及其位置:# 位置 0: 红色# 位置 1: 绿色# 位置 2: 蓝色# 位置 3: 黄色# 位置 4: 紫色
6. 使用 enumerate() 同时获取索引和值:
🌅enumerate() 函数语法
enumerate(iterable, start=0) # 返回一个枚举对象
🏆参数说明:
🌐返回值:
🌐工作原理:
🏙示例:
①. 同时获取索引和值programming_languages = ["Python", "Java", "C++", "JavaScript", "Go"]print("编程语言及其排名:")for index, language in enumerate(programming_languages, start=1): print(f" 第 {index} 名: {language}")# 输出:# 编程语言及其排名:# 第 1 名: Python# 第 2 名: Java# 第 3 名: C++# 第 4 名: JavaScript# 第 5 名: Go
7. for-else 语句:
🔥语法:
for 变量 in 可迭代对象: # 循环体代码块 # 如果循环中没有遇到 break 语句,则执行 else 块else: # 循环正常结束后执行的代码
🎯说明:
🚀for-else 语句流程图:
🌳示例:
①. 查找质数print("查找 10 到 20 之间的质数:")for num in range(10, 21): for i in range(2, num): if num % i == 0: print(f"{num} 不是质数") break else: print(f"{num} 是质数")# 输出:# 查找 10 到 20 之间的质数:# 10 不是质数# 11 是质数# 12 不是质数# 13 是质数# 14 不是质数# 15 不是质数# 16 不是质数# 17 是质数# 18 不是质数# 19 是质数# 20 不是质数
8. 嵌套 for 循环:
🎭语法:
for 变量1 in 可迭代对象1: # 外层循环代码块 for 变量2 in 可迭代对象2: # 内层循环代码块
🧭说明:
外层循环每执行一次,内层循环会完整地执行一遍
常用于处理多维数据,如二维列表、矩阵等
🧰嵌套 for 循环流程图(以两层为例):
示例 1:打印乘法表
①. 打印 1-3 的乘法表print("1-3 的乘法表:")for i in range(1, 4): for j in range(1, 4): result = i * j print(f"{i} × {j} = {result}", end="\t") print() # 换行# 输出:# 1-3 的乘法表:# 1 × 1 = 1 1 × 2 = 2 1 × 3 = 3 # 2 × 1 = 2 2 × 2 = 4 2 × 3 = 6 # 3 × 1 = 3 3 × 2 = 6 3 × 3 = 9
示例 2:列表推导式(简化的 for 循环)
使用列表推导式创建新列表numbers = [1, 2, 3, 4, 5]①. 生成平方数列表squares = [x**2 for x in numbers]print(f"原始列表:{numbers}")print(f"平方数列表:{squares}")②. 生成偶数列表evens = [x for x in numbers if x % 2 == 0]print(f"偶数列表:{evens}")# 输出:# 原始列表:[1, 2, 3, 4, 5]# 平方数列表:[1, 4, 9, 16, 25]# 偶数列表:[2, 4]
9. 遍历字典:
①. 遍历字典的键值对student_scores = {"张三": 85, "李四": 92, "王五": 78, "赵六": 90}print("学生成绩:")for name, score in student_scores.items(): if score >= 90: grade = "优秀" elif score >= 80: grade = "良好" elif score >= 70: grade = "中等" else: grade = "待提高" print(f" {name}: {score}分 ({grade})")# 输出:# 学生成绩:# 张三: 85分 (良好)# 李四: 92分 (优秀)# 王五: 78分 (中等)# 赵六: 90分 (优秀)
10. 注意事项:
不要在循环中修改正在遍历的列表:这可能导致意外行为。如果需要修改,可以遍历列表的副本或使用列表推导式创建新列表。
使用合适的变量名:使用有意义的变量名可以使代码更易读。
注意循环的终止条件:特别是使用 range() 时,记住 range(start, stop) 不包括 stop 值。
避免无限循环:确保循环有明确的终止条件。
使用 zip() 同时遍历多个序列:
names = ["小明", "小红", "小刚"]ages = [18, 17, 19]scores = [85, 92, 88]print("学生信息:")for name, age, score in zip(names, ages, scores): print(f" 姓名:{name},年龄:{age},成绩:{score}")# 输出:# 学生信息:# 姓名:小明,年龄:18,成绩:85# 姓名:小红,年龄:17,成绩:92# 姓名:小刚,年龄:19,成绩:88
for循环中的变量在循环结束后仍然保留最后一次的值。
可以使用else语句在循环正常结束后执行代码。
range()函数的参数可以是range(start, stop, step),其中start默认为0,step默认为1。
11. 与while循环的区别:
for循环:适用于已知迭代次数的场景,通常用于遍历序列。
while循环:适用于条件满足时重复执行,通常用于未知迭代次数的场景。