4.4.3 循环嵌套的应用 课件(共35张PPT) 2022-2023学年 粤教版(2019)高中信息技术 必修1

资源下载
  1. 二一教育资源

4.4.3 循环嵌套的应用 课件(共35张PPT) 2022-2023学年 粤教版(2019)高中信息技术 必修1

资源简介

(共35张PPT)
BIG DATA
4.4.3
循环嵌套的应用
第四章
授课人:XXX
THREE
循环嵌套的应用
03
什么是循环嵌套
问题1:请编写程序,输出一行5个数:1 2 3 4 5
什么是循环嵌套
问题1:请编写程序,输出一行5个数:1 2 3 4 5
for i in range(1,6):
print(i,end=“ ”)
问题2:请编写程序,输出3行,每一行5个数:1 2 3 4 5
什么是循环嵌套
问题2:请编写程序,输出3行,每一行5个数:1 2 3 4 5
for i in range(1,6):
print(i,end=“ ”)
for i in range(1,6):
print(i,end=“ ”)
for i in range(1,6):
print(i,end=“ ”)
没有输出3行
什么是循环嵌套
问题2:请编写程序,输出3行,每一行5个数:1 2 3 4 5
for i in range(1,6):
print(i,end=“ ”)
print()
for i in range(1,6):
print(i,end=“ ”)
print()
for i in range(1,6):
print(i,end=“ ”)
print()
#每输出一行后,换行
什么是循环嵌套
问题2:请编写程序,输出3行,每一行5个数:1 2 3 4 5
for i in range(1,6):
print(i,end=“ ”)
print()
for i in range(1,6):
print(i,end=“ ”)
print()
for i in range(1,6):
print(i,end=“ ”)
print()
重复了3次
可使用循环结构优化程序
#每输出一行后,换行
什么是循环嵌套
问题2:请编写程序,输出3行,每一行5个数:1 2 3 4 5
for j in range(1,4):
for i in range(1,6):
print(i,end=“ ”)
print()
for i in range(1,6):
print(i,end=“ ”)
print()
for i in range(1,6):
print(i,end=“ ”)
print()
for i in range(1,6):
print(i,end=“ ”)
print()
重复了3次
可使用循环结构优化程序
#每输出一行后,换行
什么是循环嵌套
for j in range(1,4):
for i in range(1,6):
print(i,end=“ ”)
print()
如果某一种循环语句中包含着自身或其他循环语句,就称为循环的“嵌套”
for
for
循环嵌套的类型
while
while
for
while
while
for
什么是循环嵌套
for j in range(1,4):
for i in range(1,6):
print(i,end=“ ”)
print()
循环嵌套的执行过程:外循环每执行一次,内循环执行一圈
#外循环
#内循环
外循环 内循环 j i i i i i
1 1 2 3 4 5
2 1 2 3 4 5
3 1 2 3 4 5
j 每执行一次,i 将执行5次
什么是循环嵌套
for j in range(1,4):
for i in range(1,6):
print(i,end=“ ”)
print()
循环嵌套的执行过程:外循环每执行一次,内循环执行一圈
#外循环
#内循环
外循环 内循环 j i i i i i
1 1 2 3 4 5
2 1 2 3 4 5
3 1 2 3 4 5
什么是循环嵌套
for j in range(1,4):
for i in range(1,6):
print(i,end=“ ”)
print()
循环嵌套的执行过程:外循环每执行一次,内循环执行一圈
#外循环
#内循环
外循环 内循环 j i i i i i
1 1 2 3 4 5
2 1 2 3 4 5
3 1 2 3 4 5
什么是循环嵌套
循环体
外循环
内循环
循环嵌套的应用
问题:小明同学不小心弄脏了记事本,上面记录的4位电脑密码有两个数字看不清了,你能帮他找回密码吗?
(即:假设电脑密码为1537,现在不知道后两位数字,应如何找回)
循环嵌套的应用
问题:小明同学不小心弄脏了记事本,上面记录的4位电脑密码有两个数字看不清了,你能帮他找回密码吗?
(即:假设电脑密码为1537,现在不知道后两位数字,应如何找回)
循环嵌套的应用
分析问题
1 5 i j
用变量 i 表示第3个数字,用变量 j 表示第4个数字
循环嵌套的应用
i j j j j j j j j j j
0
1
2
3
4
5
6
7
8
9
要找出正确的密码,i 和 j 有多少种组合,请补充下表:
循环嵌套的应用
i j j j j j j j j j j
0 0 1 2 3 4 5 6 7 8 9
1 0 1 2 3 4 5 6 7 8 9
2 0 1 2 3 4 5 6 7 8 9
3 0 1 2 3 4 5 6 7 8 9
4 0 1 2 3 4 5 6 7 8 9
5 0 1 2 3 4 5 6 7 8 9
6 0 1 2 3 4 5 6 7 8 9
7 0 1 2 3 4 5 6 7 8 9
8 0 1 2 3 4 5 6 7 8 9
9 0 1 2 3 4 5 6 7 8 9
要找出正确的密码,i 和 j 有多少种组合,请补充下表:
循环嵌套的应用
00 01 02 03 04 05 06 07 08 09
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99
有100(102)种可能结果
循环嵌套的应用
i j j j j j j j j j j
0 0 1 2 3 4 5 6 7 8 9
1 0 1 2 3 4 5 6 7 8 9
2 0 1 2 3 4 5 6 7 8 9
3 0 1 2 3 4 5 6 7 8 9
4 0 1 2 3 4 5 6 7 8 9
5 0 1 2 3 4 5 6 7 8 9
6 0 1 2 3 4 5 6 7 8 9
7 0 1 2 3 4 5 6 7 8 9
8 0 1 2 3 4 5 6 7 8 9
9 0 1 2 3 4 5 6 7 8 9
观察可发现:i变化1次,j会变化1轮(9次)
采用循环嵌套解决
循环嵌套的应用
分析问题
1 5 i j
外循环变量是 , 取值序列为
i
0~9
内循环变量是 , 取值序列为
j
0~9
循环嵌套的应用
设计算法
①将密码第1位数字赋值给d1: d1=1
②将密码第2位数字赋值给d2: d2=5
③逐一列举密码的第3位数字 i 和第4位数字 j 的可能结果;
④每列举一种可能,判断一次是否为正确的密码,
即:如果 i==3并且 j==7,输出“找回密码”
否则,输出“密码错误”
循环嵌套的应用
编写程序
d1=1 #密码的第1位数字
d2=5 #密码的第2位数字
#逐一列举第3位密码
#逐一列举第4位密码
if i==3 and j==7:
print(“找回密码为:”,d1,d2,i,j)
else:
print(“密码错误”)
循环嵌套的应用
编写程序
d1=1 #密码的第1位数字
d2=5 #密码的第2位数字
#逐一列举第3位密码
#逐一列举第4位密码
if i==3 and j==7:
print(“找回密码为:”,d1,d2,i,j)
else:
print(“密码错误”)
for i in range(0,10):
for j in range(0,10):
循环嵌套的应用
调试运行程序
循环嵌套的应用
优化程序
练习
1. 某Python代码如下:
mylist =[1, 2, 5, 6]
ans =0;c = 0
for i in range(1,4):
for x in mylist:
if x%i == 0:
ans += x #ans=ans+x
c += 1 #c=c+1
print(ans,c)
执行后输出的结果是( )
A. 28 7 B. 33 8 C. 14 4 D. 25 5
分析
i mylist [1, 2, 5, 6] x x%i==0 ans=0 ans=ans+x c=0
c=c+1
1 1 1%1==0 √ ans=0+1=1 c=0+1=1
1 2 2%1==0 √ ans=1+2=3 c=1+1=2
1 5 5%1==0 √ ans=3+5=8 c=2+1=3
1 6 6%1==0 √ ans=8+6=14 c=3+1=4
2 1 1%2==0 × 不执行 不执行
2 2 2%2==0 √ ans=14+2=16 c=4+1=5
2 5 5%2==0 × 不执行 不执行
2 6 6%2==0 √ ans=16+6=22 c=5+1=6
3 1 1%3==0 × 不执行 不执行
3 2 2%3==0 × 不执行 不执行
3 5 5%3==0 × 不执行 不执行
3 6 6%3==0 √ ans=22+6=28 c=6+1=7
练习
1. 某Python代码如下:
mylist =[1, 2, 5, 6]
ans =0;c = 0
for i in range(1,4):
for x in mylist:
if x%i == 0:
ans += x #ans=ans+x
c += 1 #c=c+1
print(ans,c)
执行后输出的结果是( )
A. 28 7 B. 33 8 C. 14 4 D. 25 5
A
A. 28 7
练习
2.中国古代数学家张丘建在他的《算经》中提出了著名的“百钱百鸡”问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;
百钱买百鸟,翁、母、雏各几何?
打开文件夫下的程序文件“P1.py”,进行以下操作并保存
(1)删除序号①、②、③并填写正确的代码,完善程序实现功能;
(2)调试完成后保存程序文件并关闭应用软件。
练习
#百钱百鸡
for x in range(0,20):
for ① in range(0,33):
z=100-x-y
if 5*x+3*y+z/3 ② 100:
③('鸡翁:%d只,鸡母:%d只,鸡雏:%d只'%(x,y,z))
分析
鸡翁x 鸡母y 鸡雏z 总价5x+3y+z/3 总价是否等于100
0 0 100 100/3 否
0 1 99 3*1+99/3 否
0 2 98 3*2+98/3 否
··· ··· ··· ··· ···
0 25 75 25*3+75/3=100 是
··· ··· ··· ··· ···
0 32 68 3*32+68/3 否
1 0 99 5*1+99/3 否
1 1 98 5*1+3*1+98/3 否
··· ··· ··· ··· ···
4 18 78 5*4+18*3+78/3=100 是
··· ··· ··· ··· ···
19 32 49 5*19+3*32+49/3 否
练习
#百钱百鸡
for x in range(0,20):
for in range(0,33):
z=100-x-y
if 5*x+3*y+z/3 100:
('鸡翁:%d只,鸡母:%d只,鸡雏:%d只'%(x,y,z))
y
==
print
练习
BIG DATA
那就下次再聊吧~
第四章
授课人:XXX

展开更多......

收起↑

资源预览