💬欢迎学习本节课,学习过程中遇到疑问、代码报错,可以在评论区留言,一起交流学习!
一、什么是for循环
for循环也叫遍历循环,专门用来遍历可迭代对象,把对象里面每一个元素依次取出来执行代码块。
简单理解:把列表、字符串、元组、字典、数字序列里面的数据,逐个拿出来处理。
while循环:适合循环次数不确定,靠条件判断结束循环。
for循环:适合明确要遍历哪些数据,遍历完自动结束循环。
基础语法
for、in:Python关键字,不能修改
变量:每次循环接收从对象取出的元素
可迭代对象:列表、字符串、元组、字典、range()等
末尾必须写冒号:,循环体必须缩进(4个空格)
二、range()函数(for循环高频搭档)
range()用来生成一串整数序列,本身不会直接产出列表,是专门给for循环使用的可迭代对象。
三种使用格式:
1. range(结束值):从0开始,不包含结束数字
2. range(起始值,结束值):包含起始,不包含结束
3. range(起始,结束,步长):步长,每次增加多少,可以写负数实现倒序
代码案例
# 1.range(5) → 0,1,2,3,4for i in range(5): print(i)# 2.range(1,6) →1 2 3 4 5for i in range(1,6): print(i)#3.步长2,取0,2,4,6,8for i in range(0,10,2): print(i)#4.倒序,从10到1,步长-1for i in range(10,0,-1): print(i)
⚠️特殊细节:range的结束数字永远取不到,新手高频踩坑点!
三、for循环遍历各类数据
1.遍历列表
fruit_list = ["苹果","香蕉","橙子"]for fruit in fruit_list: print(f"水果:{fruit}")
2.遍历字符串:逐个取出字符
s = "python"for char in s: print(char)
3.遍历元组
t = (10,20,30)for num in t: print(num)
4.遍历字典(重要特殊知识点)
直接for k in dict只能拿到键key;
.items()同时拿到键和值;
.values()只拿值;.keys()只拿键。
student = {"name":"小明","age":18,"gender":"男"}# 只遍历keyfor k in student: print(k)# 同时取键、值,最常用for k,v in student.items(): print(f"{k} → {v}")
5.enumerate() 遍历同时获取索引
很多场景既想要下标,又想要元素,使用enumerate()。
names = ["张三","李四","王五"]# start设置索引起始数字,默认0for index,name in enumerate(names,start=1): print(f"第{index}个人:{name}")
四、循环控制:break 和 continue
break:直接彻底跳出整个for循环,循环立刻结束
for i in range(1,10): if i == 5: break print(i)#输出1 2 3 4,遇到5直接终止
continue:跳过本次循环,直接进入下一轮循环
不会终止循环,仅仅跳过当前这一次后面代码。
for i in range(1,6): if i ==3: continue print(i)#输出1 2 4 5,i等于3的时候跳过print
对比记忆:
break → 完全结束循环
continue → 跳过这一轮,后面继续跑
五、Python独有语法:for ... else
⚠️非常特殊:else属于for,不属于if!缩进和for对齐,只有循环正常遍历完毕,没有被break打断,才会执行else里面代码;如果触发break,else不执行。
案例1:循环完整跑完,执行else
for i in range(3): print(i)else: print("循环全部执行完成")
案例2:被break打断,else不会运行
for i in range(3): if i ==1: break print(i)else: print("循环全部执行完成") # 这一句不会输出
实战用途:查找数据,如果遍历完都没找到目标,在else中做提示。
六、嵌套for循环
for循环里面再写for循环,外层循环执行1次,内层循环完整跑完一遍。
简单案例:打印九九乘法表
for i in range(1,10): for j in range(1,i+1): print(f"{j}×{i}={i*j}",end="\t") print() #换行
注意:嵌套循环注意缩进;多层嵌套运行速度会变慢,大数据尽量少写多层嵌套。
七、重点易错&特殊知识点(必看)
1. 遍历的时候不要修改原列表(删除、增加元素)
遍历列表同时删除元素,会发生索引错乱,元素被漏掉。
❌错误示范:
nums = [1,2,3,4,5]for n in nums: if n ==2: nums.remove(n)
✅解决办法:遍历副本,或者新建列表保存结果
nums = [1,2,3,4,5]new_list = []for n in nums: if n !=2: new_list.append(n)print(new_list)
2. for循环变量,循环结束后不会消失,会保留最后一次的值
for x in range(3): passprint(x) #输出2,变量x依旧存在
3. range是左闭右开,结束数字取不到,是新手最高频错误。
4. 字典遍历:直接for循环只能拿到key,想要value需要.items()|.values()。
5. for‑else 的else是绑定for,不是if,缩进千万不要搞错。
6. for只能遍历可迭代对象,整数数字不能直接写for i in 10,会报错,数字必须搭配range。
八、本节课练习题
题目1(基础)
使用for循环,输出1~20之间所有的偶数。
题目2(中等)
给定列表data = [11,22,33,44,55],利用for循环+continue,跳过33,打印其余所有数字。
题目3(拓展 for‑else)
编写程序,遍历1‑20,查找数字13;如果找到打印"找到了13"并且break;如果循环结束都没有找到,else中打印“没有找到目标数字”。
💬练习完有报错或者看不懂知识点,欢迎在评论区留言提问,一起巩固知识点!