1、4.4.3 循环嵌套的应用第 四 章授课人:XXX循环嵌套的应用03什么是循环嵌套问题1:请编写程序,输出一行5个数:1 2 3 4 5什么是循环嵌套问题1:请编写程序,输出一行5个数:1 2 3 4 5for i in range(1,6):print(i,end=“”)问题2:请编写程序,输出3行,每一行5个数:1 2 3 4 5什么是循环嵌套问题2:请编写程序,输出3行,每一行5个数:1 2 3 4 5for i in range(1,6):print(i,end=“”)for i in range(1,6):print(i,end=“”)for i in range(1,6):prin
2、t(i,end=“”)没有输出3行什么是循环嵌套问题2:请编写程序,输出3行,每一行5个数:1 2 3 4 5for 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 5for i in range(1,6):print(i,end=“”)print()for i in range(1,6):print(i,e
3、nd=“”)print()for i in range(1,6):print(i,end=“”)print()重复了3次可使用循环结构优化程序#每输出一行后,换行什么是循环嵌套问题2:请编写程序,输出3行,每一行5个数:1 2 3 4 5for 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=“”)
4、print()重复了3次可使用循环结构优化程序#每输出一行后,换行什么是循环嵌套for j in range(1,4):for i in range(1,6):print(i,end=“”)print()如果某一种循环语句中包含着自身或其他循环语句,就称为循环的“嵌套”for for循环嵌套的类型while whilefor whilewhile for什么是循环嵌套for j in range(1,4):for i in range(1,6):print(i,end=“”)print()循环嵌套的执行过程:外循环每执行一次,内循环执行一圈#外循环#内循环外循环内循环jiiiii1123452
5、12345312345j 每执行一次,i 将执行5次什么是循环嵌套for j in range(1,4):for i in range(1,6):print(i,end=“”)print()循环嵌套的执行过程:外循环每执行一次,内循环执行一圈#外循环#内循环外循环内循环jiiiii112345212345312345什么是循环嵌套for j in range(1,4):for i in range(1,6):print(i,end=“”)print()循环嵌套的执行过程:外循环每执行一次,内循环执行一圈#外循环#内循环外循环内循环jiiiii112345212345312345什么是循环嵌套循
6、环嵌套外循环每执行一次,内循环执行一圈用于解决复杂问题循环体外循环内循环循环嵌套的应用问题:小明同学不小心弄脏了记事本,上面记录的4位电脑密码有两个数字看不清了,你能帮他找回密码吗?(即:假设电脑密码为1537,现在不知道后两位数字,应如何找回)循环嵌套的应用问题:小明同学不小心弄脏了记事本,上面记录的4位电脑密码有两个数字看不清了,你能帮他找回密码吗?(即:假设电脑密码为1537,现在不知道后两位数字,应如何找回)循环嵌套的应用分析问题15ij用变量 i 表示第3个数字,用变量 j 表示第4个数字循环嵌套的应用ijjjjjjjjjj0123456789要找出正确的密码,i 和 j 有多少种组
7、合,请补充下表:循环嵌套的应用ijjjjjjjjjj00123456789101234567892012345678930123456789401234567895012345678960123456789701234567898012345678990123456789要找出正确的密码,i 和 j 有多少种组合,请补充下表:循环嵌套的应用000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636
8、46566676869707172737475767778798081828384858687888990919293949596979899有100(102)种可能结果循环嵌套的应用ijjjjjjjjjj00123456789101234567892012345678930123456789401234567895012345678960123456789701234567898012345678990123456789观察可发现:i变化1次,j会变化1轮(9次)采用循环嵌套解决循环嵌套的应用分析问题15ij外循环变量是 ,取值序列为 i09内循环变量是 ,取值序列为 j09循环嵌套的应用设
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
10、=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,6ans=0;c=0for i in range(1,4):for x in mylist:if x%i=0:ans+=x#ans=ans+xc+=1#c=c+1print(ans,c)执行后输出的结果是()A.28 7 B.33 8 C.14 4 D.25 5分析imylist1,2,5,6xx%i
11、=0?ans=0ans=ans+xc=0c=c+1111%1=0 ans=0+1=1c=0+1=1122%1=0 ans=1+2=3c=1+1=2155%1=0 ans=3+5=8c=2+1=3166%1=0 ans=8+6=14c=3+1=4211%2=0 不执行不执行222%2=0 ans=14+2=16c=4+1=5255%2=0 不执行不执行266%2=0 ans=16+6=22c=5+1=6311%3=0 不执行不执行322%3=0 不执行不执行355%3=0 不执行不执行366%3=0 ans=22+6=28c=6+1=7练习1.某Python代码如下:mylist=1,2,5,6
12、ans=0;c=0for i in range(1,4):for x in mylist:if x%i=0:ans+=x#ans=ans+xc+=1#c=c+1print(ans,c)执行后输出的结果是()A.28 7 B.33 8 C.14 4 D.25 5AA.28 7 练习2.中国古代数学家张丘建在他的算经中提出了著名的“百钱百鸡”问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸟,翁、母、雏各几何?打开文件夫下的程序文件“P1.py”,进行以下操作并保存(1)删除序号、并填写正确的代码,完善程序实现功能;(2)调试完成后保存程序文件并关闭应用软件。练习#百钱百鸡for x
13、 in range(0,20):for in range(0,33):z=100-x-yif 5*x+3*y+z/3 100:(鸡翁:%d只,鸡母:%d只,鸡雏:%d只%(x,y,z)分析鸡翁x鸡母y鸡雏z总价5x+3y+z/3总价是否等于10000100100/3否01993*1+99/3否02983*2+98/3否0257525*3+75/3=100是032683*32+68/3否10995*1+99/3否11985*1+3*1+98/3否418785*4+18*3+78/3=100是1932495*19+3*32+49/3否练习#百钱百鸡for x in range(0,20):for in range(0,33):z=100-x-yif 5*x+3*y+z/3 100:(鸡翁:%d只,鸡母:%d只,鸡雏:%d只%(x,y,z)y=print练习那就下次再聊吧第四章授课人:XXX