资源简介 (共35张PPT)BIG DATA4.4.3循环嵌套的应用第四章授课人:XXXTHREE循环嵌套的应用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):print(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,end=“ ”)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=“ ”)print()重复了3次可使用循环结构优化程序#每输出一行后,换行什么是循环嵌套for j in range(1,4):for i in range(1,6):print(i,end=“ ”)print()如果某一种循环语句中包含着自身或其他循环语句,就称为循环的“嵌套”forfor循环嵌套的类型whilewhileforwhilewhilefor什么是循环嵌套for j in range(1,4):for i in range(1,6):print(i,end=“ ”)print()循环嵌套的执行过程:外循环每执行一次,内循环执行一圈#外循环#内循环外循环 内循环 j i i i i i1 1 2 3 4 52 1 2 3 4 53 1 2 3 4 5j 每执行一次,i 将执行5次什么是循环嵌套for j in range(1,4):for i in range(1,6):print(i,end=“ ”)print()循环嵌套的执行过程:外循环每执行一次,内循环执行一圈#外循环#内循环外循环 内循环 j i i i i i1 1 2 3 4 52 1 2 3 4 53 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 i1 1 2 3 4 52 1 2 3 4 53 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 j0123456789要找出正确的密码,i 和 j 有多少种组合,请补充下表:循环嵌套的应用i j j j j j j j j j j0 0 1 2 3 4 5 6 7 8 91 0 1 2 3 4 5 6 7 8 92 0 1 2 3 4 5 6 7 8 93 0 1 2 3 4 5 6 7 8 94 0 1 2 3 4 5 6 7 8 95 0 1 2 3 4 5 6 7 8 96 0 1 2 3 4 5 6 7 8 97 0 1 2 3 4 5 6 7 8 98 0 1 2 3 4 5 6 7 8 99 0 1 2 3 4 5 6 7 8 9要找出正确的密码,i 和 j 有多少种组合,请补充下表:循环嵌套的应用00 01 02 03 04 05 06 07 08 0910 11 12 13 14 15 16 17 18 1920 21 22 23 24 25 26 27 28 2930 31 32 33 34 35 36 37 38 3940 41 42 43 44 45 46 47 48 4950 51 52 53 54 55 56 57 58 5960 61 62 63 64 65 66 67 68 6970 71 72 73 74 75 76 77 78 7980 81 82 83 84 85 86 87 88 8990 91 92 93 94 95 96 97 98 99有100(102)种可能结果循环嵌套的应用i j j j j j j j j j j0 0 1 2 3 4 5 6 7 8 91 0 1 2 3 4 5 6 7 8 92 0 1 2 3 4 5 6 7 8 93 0 1 2 3 4 5 6 7 8 94 0 1 2 3 4 5 6 7 8 95 0 1 2 3 4 5 6 7 8 96 0 1 2 3 4 5 6 7 8 97 0 1 2 3 4 5 6 7 8 98 0 1 2 3 4 5 6 7 8 99 0 1 2 3 4 5 6 7 8 9观察可发现:i变化1次,j会变化1轮(9次)采用循环嵌套解决循环嵌套的应用分析问题1 5 i j外循环变量是 , 取值序列为i0~9内循环变量是 , 取值序列为j0~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 = 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分析i mylist [1, 2, 5, 6] x x%i==0 ans=0 ans=ans+x c=0c=c+11 1 1%1==0 √ ans=0+1=1 c=0+1=11 2 2%1==0 √ ans=1+2=3 c=1+1=21 5 5%1==0 √ ans=3+5=8 c=2+1=31 6 6%1==0 √ ans=8+6=14 c=3+1=42 1 1%2==0 × 不执行 不执行2 2 2%2==0 √ ans=14+2=16 c=4+1=52 5 5%2==0 × 不执行 不执行2 6 6%2==0 √ ans=16+6=22 c=5+1=63 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 = 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 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 总价是否等于1000 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-yif 5*x+3*y+z/3 100:('鸡翁:%d只,鸡母:%d只,鸡雏:%d只'%(x,y,z))y==print练习BIG DATA那就下次再聊吧~第四章授课人:XXX 展开更多...... 收起↑ 资源预览