43. Python for 循环
文章目录
- 43. Python for 循环
- 1. 课题导入
- 2. 什么是循环
- 3. 什么是for循环
- 4. for 循环语法
- 5. 可迭代对象
- 6. for循环的执行流程
- 7. for 循环的对象
- 1. 循环对象为字符串
- 2. 循环的对象不能为整数
- 3. 循环的对象不能为浮点数
- 4. 循环对象为布尔类型
- 5. 循环对象为列表
- 6. 循环对象为元组
- 7. 循环对象为字典
- 8. 循环对象为集合
- 9. 循环对象为range对象
- 1. 只有1个参数
- 2. 有2个参数
- 2. 有3个参数
- 8. 课后练习
- 8.1 用for循环和range函数输出1到100之间的所有偶数
- 8.2 用for循环和range函数输出1到100之间的所有奇数
- 9. 总结
1. 课题导入
# 新建一个列表,存储班级人员姓名
# 列表用方括号`[]`表示,元素之间用逗号`,`分隔
name_list = ['白敬亭', '井柏然', '王嘉尔', '马思纯']
# 用列表[索引]的方法将班级人员姓名依次输出
# 列表的正索引是从0开始编号的
print(name_list[0])
print(name_list[1])
print(name_list[2])
print(name_list[3])
【终端输出】
白敬亭
井柏然
王嘉尔
马思纯
上述列表只有4个元素,我们可以用列表[索引]
的方法输出列表的元素。
那如果我们班有100个人,列表就有100个元素。
我们要输出班里每个人的姓名,就需要写100行print
代码。
那有没有什么简便的方法可以将100个元素依次输出呢?
python中的for循环可以解决上述问题。
2. 什么是循环
【循环的百度释义】
-
特指运行一周而回到原处,再转。
-
反复地连续地做某事。
【循环的python释义】
循环是指计算机程序中某些代码被反复执行。
3. 什么是for循环
Python中有2种循环。
一种循环次数明确,另一种循环次数不明确。
在循环重复次数明确时,我们通常称之为计数循环,即for循环。
【功能】
for语句用于遍历序列中的所有元素。
从序列的头部开始,依次取出序列的每个元素,并对每个元素进行一些操作直到结束,这种处理模式被称为遍历。
我们简单理解为多次、反复执行一条或一段代码。
初接触for循环可以理解为从某个容器里依次取出里面的物品,存储在另一个变量里。
【特点】
循环之前就确定了循环次数。
【for循环与while循环的区别】
for循环:循环次数明确。
while循环:循环次数不明确。
while循环后面学。
【遍历对象】
for循环语句遍历的对象只能是可迭代对象。
4. for 循环语法
# for 循环遍历列表
for i in ['白敬亭','井柏然'] :
print(i)
【终端输出】
白敬亭
井柏然
上述代码的列表中有2个元素。
有2个元素代码循环2次。
运行上述代码,终端执行了2次print(i)
,分别输出了白敬亭
, 井柏然
。
for 循环语句包含七个要素:
①关键字 “for” 和③关键字 "in"是固定搭配。
②是循环变量。
④可迭代对象。
⑤英文冒号":"。
⑥缩进,冒号下的语句前有四个空格的缩进。缩进快捷键:ctrl+]
或Tab
。
⑦循环体,可以理解为 for 循环语句下的一个代码块,就是需要反复执行的代码。正常情况下,每循环一次,这个代码块都会被执行一次。
可迭代对象可以理解为一个"盒子",可以被程序一次一次地取出数据。
循环变量,是用来接收 for 循环语句遍历(即一次次取出)可迭代对象里的数据。
循环变量的名字我们可以自己命名,命名注意事项和变量命名一样,不能用Python中的关键字。
【4空格缩进的实现】
-
英文冒号后直接回车
-
Tab键
-
ctrl
+】
5. 可迭代对象
- 字符串
- 列表
- 元组
- 字典
- 集合
- range对象
【不可迭代对象】
- 整数
- 浮点数
- 布尔值
6. for循环的执行流程
我的冰箱里有6个鸡蛋。
第1次取出1个鸡蛋。
第2次取出2个鸡蛋。
第3次取出3个鸡蛋。
我们用for循环输出每次取出鸡蛋的个数。
体验代码
# 用列表存储每次取出鸡蛋的个数
egg_list = [1,2,3]
# 用for循环实现取鸡蛋的动作
# 注意语句结束后有英文冒号
for i in egg_list :
# 需反复执行的代码,即输出每次取出的鸡蛋数
# 注意代码前有4个空格
print(i)
【终端输出】
1
2
3
【代码解析】
i
是变量名,用来存储每次取出的鸡蛋数。
第1次循环i=列表中的第一个元素,即i=1。
第2次循环i=列表中的第二个元素,即i=2。
第3次循环i=列表中的第三个元素,即i=3。
列表中有3个元素,因此执行3次循环,即print(i)
执行3次。
7. for 循环的对象
1. 循环对象为字符串
for i in "andy" :
print(i)
【终端输出】
a
n
d
y
【代码解析】
上述代码字符串中有4个字符,因此执行4次循环,即print(i)
执行4次。
i
是循环变量名,也可以用其他变量名,你可以用m , n 等等,看你心情。
"andy"
是我遍历的对象,可以理解为某个容器里有1个字符串,我们将字符串中的字符依次取出,并输出。
第1次取出字符a
并赋值给变量i
,执行print(i)
,然后继续执行循环。
第2次取出字符n
并赋值给变量i
,执行print(i)
,然后继续执行循环。
第3次取出字符d
并赋值给变量i
,执行print(i)
,然后继续执行循环。
第4次取出字符y
并赋值给变量i
,执行print(i)
,到这里循环执行了4次,列表中已经没有元素可以取了,循环结束。
因此输出的结果为4个字符:a n d y
2. 循环的对象不能为整数
for i in 1234 :
print(i)
【终端输出】
TypeError: 'int' object is not iterable
整数是不可迭代对象。
循环对象为整数时,程序报错。
‘int’ object is not iterable:“int”对象不可迭代。
3. 循环的对象不能为浮点数
for i in 1.99 :
print(i)
【终端输出】
TypeError: 'float' object is not iterable
浮点数为不可迭代对象。
对象为整浮点数时,程序报错。
‘float’ object is not iterable:“float”对象不可迭代。
4. 循环对象为布尔类型
for i in True :
print(i)
【终端输出】
TypeError: 'bool' object is not iterable
布尔类型为不可迭代对象。
对象为布尔值,程序报错。
‘bool’ object is not iterable:“bool”对象不可迭代。
5. 循环对象为列表
for i in [1, 2, 3, 4, 5, 6] :
print(i)
【终端输出】
1
2
3
4
5
6
列表[1, 2, 3, 4, 5, 6]
是我遍历的对象,可以理解为某个容器里有1个列表,我们将列表中的元素依次取出,并输出。
上述代码列表中有6个元素,因此执行6次循环,即print(i)
执行6次。
因此输出结果为:1 2 3 4 5 5
6. 循环对象为元组
for i in (1, 2, 3, 4) :
print(i)
【终端输出】
1
2
3
4
元组(1, 2, 3, 4)
是我遍历的内容,可以理解为某个容器里有1个元组,我们将元组中的元素依次取出,并输出。
上述代码元组中有4个元素,因此执行4次循环,即print(i)
执行4次。
因此输出结果为:1 2 3 4
7. 循环对象为字典
for i in {"北京":100000, "上海":200000, "广州":510000} :
print(i)
【终端输出】
北京
上海
广州
注意for循环遍历字典时,输出的是字典的键。
上述字典有3个键值对,因此执行3次循环,即print(i)
执行3次。
8. 循环对象为集合
for i in {"北京", "上海", "广州"} :
print(i)
【终端输出】
北京
广州
上海
上述集合有3个元素,因此执行3次循环,即print(i)
执行3次。
9. 循环对象为range对象
1. 只有1个参数
for i in range(3):
print(i)
【终端输出】
0
1
2
range函数只有1个参数时,默认开始整数为0,步长为1。
start=0(包含)
end=3(不包含)
step=1
2. 有2个参数
for i in range(2,7):
print(i)
【终端输出】
2
3
4
5
6
range函数有2个参数时,默认步长为1。
start=2(包含)
end=7(不包含)
step=1
2. 有3个参数
for i in range(3,11,2):
print(i)
【终端输出】
3
5
7
9
start=3(包含)
end=11(不包含)
step=2(形象理解为等差为2的公差数列)
第1个数为3。
第2个数为3+2=5。
第3个数为5+2=7。
第4个数为7+2=9。
第4个数为9+2=11(不包含)。
8. 课后练习
8.1 用for循环和range函数输出1到100之间的所有偶数
【步骤分析】
确定range函数的3个参数:
start=2(1到之间的第一偶数是2)
end=101(因为要含100,因此结束值要加1)
step=2
【体验代码】
# 注意最后不能省略空格
for i in range(2,101,2) :
# 注意有4个空格的缩进
print(i)
因为太占用篇幅,这里不展示输出内容。
8.2 用for循环和range函数输出1到100之间的所有奇数
【步骤分析】
确定range函数的3个参数:
start=1(1到之间的第一奇数是1)
end=100(100是奇数,因此结束值可以为100)
step=2
【体验代码】
# 注意最后不能省略空格
for i in range(1,100,2) :
# 注意有4个空格的缩进
print(i)
因为太占用篇幅,这里不展示输出内容。
【程序报错检查以下3个内容】
1.检查是否有英文冒号
2.检查缩进是否正确
3.检查标点符号是否为英文输入法下输入。