内容正文:
for循环的应用
4.4.1
2025.12.25
1
任务一:使用循环结构编写代码输出8个小组的名字
任务二:输出全班每位同学501-548一共48个编号
任务三:竞赛分为10个关卡,,第一关满分为1分, 第二关为2分,第三关为3分.....如果有小组 每个关卡都或得满分,最终得分是多少?
循环结构
在前面几节课中,我们已经学习了顺序结构和分支结构,这节课我们将要学习最后一种控制结构也就是循环结构。在循环结构的内容结束后,我们本学期的学习内容也即将结束,临近期末时,我们将进行一次知识竞答活动,这节课我们就通过学习循环结构来为知识竞答活动做准备,制作一个计分器。
我们本节课一共要完成三个任务。首先来一起看一下第一个。
2
任务一
一共有八个组,如何通过编写程序输出每个小组的名字?
print()
for循环
print("讷家军")
print("诛九组")
print("五班信息三组")
print("坐看世俗繁华")
print("云枫库里挚爱")
print("森森")
print("最美TS")
print("我萌萌的")
之前我们已经分过小组了。并且每个小组已经起了名字。我们的第一个任务就是需要编写一个程序来输出八个小组的名字。想一下这个程序可以怎么来写?
输出我们使用的是什么语句?
Print语句,所以我们可以怎么输出8个小组的名字?写8个print语句或者有的同学可能想到在print语句中一次性输出8个小组的名字。那么是否还有其他的方式呢?如果写8个print语句,是不是很麻烦?并且这样写我们可以看出有一个什么特征。是不是在重复的做一件事情?那么这种重复的做一件事情,我们就可以使用循环结构来解决。
3
for循环的一般格式
for 循环变量 in 列表:
语句或语句组
先一起来看一下循环的一般格式。我们分别来看一下。
第一个for
for循环关键字,告诉 Python 接下来要写的是循环结构,并且是for循环,因为循环还有另一种while循环
第二个
循环变量:再循环过程中每循环一次,循环变量就会按照顺序依次从后面的列表中取一个值。列表中的所有值被取完,循环就结束。
:的作用:“声明循环开始”,我已经写完了 for 循环的‘条件部分’,接下来要写这个循环的内容。
缩进的代码,都属于这个 for 循环的循环体,会被重复执行;如果代码没有缩进 就属于循环外,不会被重复执行:循环结束后才执行。我们分别来看两个例子。
4
直接引用列表
for循环
输出结果
再来看一例子。在这个列表当中我放了一些分数。这也是直接引用。直接引用列表在编程时可能存在一些局限性,比如除了输出分数,如果还要判断是否有不及格,并且输出不及格的分数,我们需要再写一个循环,i同样依次读取分数,然后需要判断每个分数是否小于60分,如果是就输出。
如果直接引用列表,而这个列表需要多次被使用,或者需要修改列表中的元素,就比较麻烦,所以可以先定义列表,再引用。
5
先定义
后引用
for循环
输出结果
再来看一例子。在这个列表当中我放了一些分数。这也是直接引用。直接引用列表在编程时可能存在一些局限性,比如除了输出分数,如果还要判断是否有不及格,并且输出不及格的分数,我们需要再写一个循环,i同样依次读取分数,然后需要判断每个分数是否小于60分,如果是就输出。
如果直接引用列表,而这个列表需要多次被使用,或者需要修改列表中的元素,就比较麻烦,所以可以先定义列表,再引用。
6
任务一
使用先定义后引用的方式输出八个小组的名字
name=["讷家军","诛九组","五班信息三组","坐看世俗繁华","云枫库里挚爱","森森","最美TS","我萌萌的"]
for 循环变量 in 列 表 :
语句或语句组
1.py
7
任务一
使用先定义后引用的方式输出八个小组的名字
name=["讷家军","诛九组","五班信息三组","坐看世俗繁华","云枫库里挚爱","森森","最美TS","我萌萌的"]
for 循环变量 in 列 表 :
语句或语句组
i
name
print(i)
8
如何输出全班所有人的编号?
number=[501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548]
for i in number:
print(i)
for循环
9
range函数
for 循环变量 in 列表:
语句或语句组
range(初值,终值,步长)
for i in range(1,10,2)
for i in range(10,1,-3)
for i in range(1,10)
for i in range(10)
1,3,5,7,9
默认步长为1
默认初值为0
步长可以为负值
1,2,3,4,5,6,7,8,9
0,1,2,3,4,5,6,7,8,9
10,7,4
生成从初值开始,到终值前一个数结束,按照指定步长递增或递减的整数序列
10
输出全班所有人501-548的编号
附加任务:每组6个人,如果设定每组的第一位为组长,尝试输出每一组组长的编号。
任务二
for循环
21.py
11
附加任务:每组6个人,如果设定每组的第一位为组长,尝试输出每一组组长的编号。
for循环
501,549
501,549,6
i
i
输出全班所有人501-548的编号
任务二
21.py
12
任务三
知识竞赛小组赛以闯关的形式进行,一共分成10个关卡,每个关卡的难度不一样,根据作答情况在每个关卡获得不同的分数,第一关满分为1分,第二关为2分,第三关为3分.....如果有小组完美通过了10个关卡(每个关卡都获得满分),最终能获得几分?
for循环
13
任务三
计分器 total
如果有小组完美通过了10个关卡(每个关卡都获得满分),最终能获得几分?
total=
第一关
total= total+1
第二关
第三关
第i关
total=
total+2
total=
total=
total+3
total+i
........
新的
原来的
0
...........
31.py
14
如果有小组完美通过了10个关卡(每个关卡都获得满分),最终能获得几分?
任务三
0
1,11
total+i
1+2+3+......+10
开始
开始
开始
total=0
i=1
结束
结束
结束
i<11
输出total
total=total+i
Y
N
i=i+1
次数 total i
1
2
3
... .......
10
total=0+1=1 2
total=1+2=3 3
total=3+3=6 4
total=45+10 11
15
任务三
如何实现自由输入10个分数并计算积分
1+2+3+......+10
开始
开始
开始
total=0
i=1
结束
结束
结束
i<11
输出total
输入第i关分数s
Y
N
i=i+1
total=
total=total+i
total+s
0
1,11
total+i
16
for循环
实现自由输入10个分数计算总分
附加任务
32.py
0
1,11
total+i
total=total+s
s=int(input("请输入第%d关得分:"%i))
开始
开始
开始
total=0
i=1
结束
结束
结束
i<11
输入第i关分数s
Y
N
i=i+1
total=
total+s
输出total
17
课堂总结
01
for循环格式
02
列表直接引用
03
列表先定义后引用
04
range函数
range(初值,终值,步长)
18
课后思考
新规则思考
如果某一关未通过(得0分)就终止闯关并输出当前得分,我们可以如何修改程序?
19
$