(共21张PPT)
4.4
运用循环结构描述
问题求解过程
目
录
For循环的应用
While循环的应用
循环嵌套的应用
循环控制的应用
4.4.1
4.4.2
4.4.3
4.4.4
循环结构
一般情况下,需要多次重复执行的代码,都可以用循环的方式来完成
循环结构可以简化编程结构,提高代码编写的效率。
for 循环语句的一般格式
for 循环变量 in 列表:
语句1
语句2
语句3
……
遍历
4.4.1 for循环的应用
for语句通过遍历序列中的元素实现循环,序列中的元素会被依次赋值给变量,然后执行一次循环体,当序列中的元素全部遍历完时,程序会自动退出循环。
for 循环变量 in 列表:
语句1
语句2
语句3
……
遍历
4.4.1 for循环的应用
注意:
for循环依次把列表中的每个元素逐个迭代出来
冒号“:”代表下一行是循环的第一行,循环体在书写时需要缩进
循环输出列表中的每个数
示例:2021年奥运会正在举行,小张同学想输出中国奥运军团历届奥运会获得金牌数量,使用for循环能帮他快速完成这一任务。
medal=[15,5,16,6,5,16,18,28,32,51,38,26]
for i in medal:
print(i)
range()函数
range()函数是让循环变量从指定的第一个值开始计数,并在到达所指的第二个值后停止计数,因此不包含第二个值。
range([start],[stop],[step]),若没有步长值,默认为1
range函数实际上返回的是一个整数列表
for循环是将循环变量依次赋值为循环对象中的每一个元素
range(1,6) → [1,2,3,4,5]
range(1,6,2) → [1,3,5]
问题1
如何利用循环结构求解1到100的累加和?
要计算从1到100内的奇数和,就是计算1+3+5+…+99,可以用for循环和range函数编程来解决这个问题。
分析问题
问题1
如何利用循环结构求解100以内的奇数和?
sum = 0
for i in range(1,100,2):
sum = sum + i
print(sum)
解决问题
while循环/条件循环
while循环是当型循环,即将while翻译为“当……时”,只要条件满足,就不断循环;否则,跳出循环。
格式
while 表达式:
语句1
语句2
语句3
……
每次循环都是执行完循环体语句后回到表达式处重新开始判断,重新计算表达式的值。一旦为假就跳出循环,为真时继续执行循环体语句。
循环体中必须有改变条件表达式值的语句,否则将变成死循环
一般是一个关系表达式或一个逻辑表达式,值为True或False
while循环/条件循环
上条语句
表达式?
循环语句
下条语句
N
Y
执行过程:
当表达式的值为真时,执行循环体语句;当表达式的值为假时,退出循环,执行循环体外的下一条语句(即while后面没有缩进的第一条语句)。
注意缩进格式!
问题2
某班同学为河南暴雨灾害组织捐款,恰巧该班同学的捐款金额构成了一个等差数列,第一位同学捐款20元,第二位同学捐款30元……后一位比前一位多捐款10元,依次下去,请问第几个人捐款后募集到的总金额累计超过500元?
捐款人数num
个人捐赠money
累计金额sum
sum=20+30+40+……
即:当sum>500时,求num的值
分析问题
设计算法
开始
num=1
money=20
sum=20
num=num+1
money=money+10
sum=sum+money
如果sum<=500,则返回步骤④
输出num的值
结束
编写程序
num=1 #捐款人数
money=20 #个人捐赠钱数
sum=20 #累积捐款金额
while sum<=500: #当不超过500时
num=num+1
money=money+10 #money+=10
sum=sum+money #sum+=money
print(num) #输出捐款人数
画出流程图
num=1
sum<=500
num=num=1
Money=money+10
Y
money=20
sum=20
sum=sum+money
输出num
1
2
循环嵌套
for循环嵌套for/while循环
while循环嵌套for/while循环
如果某一种循环语句中包含着其他循环语句,就称为循环“嵌套”。
注意:
for循环通过遍历循环对象进行计数循环;
while循环通过判定条件进入循环;
循环嵌套的作用:解决复杂的问题。
循环嵌套
外层循环
内层循环
注意:
外层循环每一次循环计数,内层循环会完整地执行到循环结束;
外层循环执行完时,整个嵌套循环才算结束。
示例:
for a in range(1,3):
for b in range(1,3):
print(a,b)
运行结果:
1 1
1 2
2 1
2 2
问题3
利用嵌套循环实现九九乘法表。
分析问题
外层循环的循环条件应该如何编写
内层循环的循环条件应该如何编写
内层循环的循环体包含哪些内容
第一个乘数从1到9
第二个乘数从1到第一个乘数
打印乘法结果
#for循环的嵌套
for row in range(1,10):
for col in range(1,row+1):
print(row,"*",col,"=",row*col,end=" ")
print()#换行
设计算法、编写程序
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
循环控制continue和break
continue语句
continue语句是当条件符合需要跳转的时候,跳过该次循环结束前的语句,回到循环开头的条件判断部分,重新开始执行循环。
break语句
在循环结构中,可以用break语句跳出当前循环体,从而跳出当前循环,执行当前循环外的下一条语句。
循环控制continue和break
求解一下程序的输出结果
(1)
sum = 0
for i in range(0, 10) :
sum = sum + i
if i == 5 :
break
print(sum)
1到5的累加和
(2)
sum = 0
for i in range(0, 10) :
if i %2== 0 :
continue
sum = sum + i
print(sum)
10以内的奇数和
总结
for循环:通过遍历序列中的元素以实现循环,常搭配range函数使用。
while循环:又叫条件循环。只要条件满足,就不断循环;否则,退出循环。
循环嵌套:某一种循环中包含另一种循环,就称为循环的嵌套。
循环控制:break语句→跳出循环;
continue语句→跳过本次循环,回到开头。