(
课件网) 4.3运用循环结构描述问题求解过程 4.4.3 循环嵌套的应用 复习巩固 for循环语句的一般格式 : for 循环变量 in 列表: 语句或语句组 while循环语句的一般格式 : Whlie (表达式): 语句或语句组 探究活动 求:方程6 x+5 y+4 z=50的正整数解的个数? 这个问题是三元一次方程,只有一个方程,解起来比较麻烦,只能用笨办法,用穷举法,一个一个试值,计算量相当的大,我们可以用我们学过的循环结构来解决? 分析问题 设计算法 1、t=0; 2、x=1; 3、y=1; 4、z=1; 5、如果满足式子6x+5y+4z=50,则解的个数加1(即t=t+1); 6、z=z+1; 7、如果z<=12则转步骤5,否则步骤8; 8、y=y+1; 9、如果y<=10则转步骤4,否则步骤10; 10、x=x+1; 11、如果x<=8则转步骤3,否则步骤12; 12、结束。 流程图描述算法 循环嵌套 从流程图,我们能清楚地看到,用了三重循环,这三重循环是一层包裹着一层。这就是循环的嵌套。 单独使用for循环或while循环单循环语句,往往无法解决复杂的问题。如需要解决类似“工作要做很多遍,而每一遍工作都需要重复做一些事情”的问题,就要用到多重循环,即“循环嵌套”。如果某一种循环语句中包含着自身或其他循环语句,就称为循环的“嵌套”。for循环或while循环之间可以相互嵌套。 循环嵌套 当 2 个(甚至多个)循环结构相互嵌套时,位于外层的循环结构常简称为外层循环或外循环,位于内层的循环结构常简称为内层循环或内循环。 循环嵌套结构的代码,Python 解释器执行的流程为:当外层循环条件为 True 时,则执行外层循环结构中的循环体; 外层循环体中包含了普通程序和内循环,当内层循环的循环条件为 True 时会执行此循环中的循环体,直到内层循环条件为 False,跳出内循环; 如果此时外层循环的条件仍为 True,则返回第 2 步,继续执行外层循环体,直到外层循环的循环条件为 False; 当内层循环的循环条件为 False,且外层循环的循环条件也为 False,则整个嵌套循环才算执行完毕。 循环嵌套 执行流程图 编写程序 t=0 for x in range(1,9): for y in range(1,11) : for z in range(1,13): if (6 x+5 y+4 z )==50: t=t+1 print("第 %d 个解为 :"%t,x,y,z) print("方程解的个数为:" ,t) 循环控制 循环控制包含控制变量的变化方式和控制循环的跳转。无论是for循环 还是while 循环,都需要一个控制循环的变量来控制循环的执行。但是 ,有些循环仅靠循环变量自身的变化难以达到想要的控制效果,因此需要 用到控制循环的跳转语句。实现控制循环的跳转需要用到break和continue 两个关键字。其中,break是中断循环,continue是跳出本次循环体的执行。 break语句 求:1+2+3+4+……+100加到那个数,累加的和首次值超过1000? sum=0 for i in range(1,101): sum=sum+i if sum >1000: print(“累加到的数是:”,i) break print(“累加的和为:”,sum) continue语句 求:输出字符串“hello python”所有非“o”字符? a= “hello python” for i in a: if i==“o”: continue print(“输出当前字符:”,i) 学以致用 求:1!+2!+3!+4!+5!的和? s=0 for i in range(1,6): n=1 for j in range(1,i+1): n=n j s=s+n print("1!+2!+3!+4!+5!=",s) 程序代码 谢谢 Thanks ... ...