Python语言程序设计第五章循环结构程序设计ppt课件

上传人:m**** 文档编号:570916104 上传时间:2024-08-07 格式:PPT 页数:38 大小:841.50KB
返回 下载 相关 举报
Python语言程序设计第五章循环结构程序设计ppt课件_第1页
第1页 / 共38页
Python语言程序设计第五章循环结构程序设计ppt课件_第2页
第2页 / 共38页
Python语言程序设计第五章循环结构程序设计ppt课件_第3页
第3页 / 共38页
Python语言程序设计第五章循环结构程序设计ppt课件_第4页
第4页 / 共38页
Python语言程序设计第五章循环结构程序设计ppt课件_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《Python语言程序设计第五章循环结构程序设计ppt课件》由会员分享,可在线阅读,更多相关《Python语言程序设计第五章循环结构程序设计ppt课件(38页珍藏版)》请在金锄头文库上搜索。

1、PythonPython语言程序设计语言程序设计第第5 5章章 循环结构程序设计循环结构程序设计2 第第5 5章章 循环结构程序设计循环结构程序设计循环结构程序设计循环结构程序设计5.1 while语句句(当型循当型循环)5.2 for语句句结构构5.3循循环的嵌套的嵌套5.4 循循环控制控制语句句5.5 循循环结构程序构程序举例例3 第第5 5章章 循环结构程序设计循环结构程序设计循环结构的基本类型循环结构的基本类型n 当型循环当型循环while, forexpAFT4 第第5 5章章 循环结构程序设计循环结构程序设计循环结构程序设计循环结构程序设计循循环结构程序构程序设计的的应用用场合:合

2、:当某个条件当某个条件满足足时,需要多次反复,需要多次反复进行同行同样工作工作。例如例如:1、求实数、求实数x的的10次方次方2、求数列、求数列1,2,i, 的前的前n项和项和3、判断一个整数是否是素数、判断一个整数是否是素数5 第第5 5章章 循环结构程序设计循环结构程序设计5.1 while语句语句(当型循环当型循环)n特点:特点:先判断,再先判断,再执行行nwhile while 语句的句的语法格式:法格式:注意:注意:1. 循环体循环体可能一次也不执行可能一次也不执行。2. 循环体可为循环体可为任意类型语句任意类型语句。3. 退出退出while循环循环的情况的情况:p exp不成立不成

3、立p 循环体循环体内遇内遇break, return, exit等。等。exp循环体循环体FTwhile exp: 循环体循环体6 第第5 5章章 循环结构程序设计循环结构程序设计在在while语句中使用语句中使用else子句子句Python可以在循可以在循环语句中使用句中使用else子句,即构子句,即构成了成了while.else循循环结构。构。while exp: 循环体循环体else: 语句语句8 第第5 5章章 循环结构程序设计循环结构程序设计例例:求求n1)问题分析:)问题分析: sum,n=0,1n=100sum=sum+n n=n+1YN输出输出sum结束结束开始开始sum =

4、1+2+100 100个数个数n 循环语句:循环语句:循环变量初始化:循环变量初始化:循环控制条件:循环控制条件:循环体:循环体:循环变量的修改:循环变量的修改:n1n=100sum+=nn=n+19 第第5 5章章 循环结构程序设计循环结构程序设计例例:求求 sum,n=0,1 while n= 0sum=sum+x YN输出输出sum结束结束开始开始n 循环语句四要素:循环语句四要素:循环变量初始化:循环变量初始化:循环控制条件:循环控制条件:循环体:循环体:循环变量的修改:循环变量的修改: 输入输入x的值的值x=0 sum=sum+x 输入输入x的值的值输入输入x12 第第5 5章章 循

5、环结构程序设计循环结构程序设计 例例: 从键盘输入若干个数,从键盘输入若干个数, 求所有正数之求所有正数之和。当输入和。当输入0或负数时,程序结束或负数时,程序结束sum=0x=input(“请输入正整数请输入正整数:)while x=0:sum=sum+xx=input(“请输入正整数请输入正整数:) printf(sum=, sum)14 第第5 5章章 循环结构程序设计循环结构程序设计5.1 while语句语句说明说明1. while 语句之前必须语句之前必须预先设置判断的初始条件预先设置判断的初始条件2. 防止防止“死循环死循环”的发生的发生 在循环体中必须有使循环趋向结束的操作,即在

6、循环体中必须有使循环趋向结束的操作,即 在循环体中要有能让逻辑表达式值改变的语句在循环体中要有能让逻辑表达式值改变的语句3. 正确使用缩进正确使用缩进 当循环体中含多条语句时当循环体中含多条语句时,需用缩进这些多条语需用缩进这些多条语句,而且缩进一定要符合逻辑关系句,而且缩进一定要符合逻辑关系 4.在循环体中,在循环体中,语句的先后位置必须符合逻辑语句的先后位置必须符合逻辑 否则会影响运算结果。否则会影响运算结果。15 第第5 5章章 循环结构程序设计循环结构程序设计5.2 for语句语句 结构结构1. for语句一般形式:语句一般形式: for 目标变量目标变量 in 序列对象:序列对象:

7、循环体语句循环体语句说明:说明: for语句的首行定义了目标变量和遍历的序语句的首行定义了目标变量和遍历的序列对象,后面是需要重复执行的语句块。语列对象,后面是需要重复执行的语句块。语句块中的语句要向右缩进,且缩进量要一致。句块中的语句要向右缩进,且缩进量要一致。16 第第5 5章章 循环结构程序设计循环结构程序设计注意:注意:(1)for语句是通过遍历任意序列的元素来建立语句是通过遍历任意序列的元素来建立循环的。循环的。(2)for 语句也支持一个可选的语句也支持一个可选的else块,一般格块,一般格式如下:式如下:for 目标变量目标变量 in序列对象:序列对象: 语句块语句块else:

8、语句语句17 第第5 5章章 循环结构程序设计循环结构程序设计2. range 对象在对象在for循环中的应用循环中的应用 range函数返回的是可迭代对象,函数返回的是可迭代对象,range()函数的()函数的一般格式为:一般格式为: range(start,end,step) rang ()函数共有三个参数,函数共有三个参数,start和和step是可选的,是可选的,start表示开始,默认值为表示开始,默认值为0,end表示结束,表示结束,step表示表示每次跳跃的间距,默认值为每次跳跃的间距,默认值为1。函数的功能是从一个。函数的功能是从一个start参数的值开始,到参数的值开始,到e

9、nd参数的值结束的数字序列。参数的值结束的数字序列。18 第第5 5章章 循环结构程序设计循环结构程序设计传递一个参数的range()函数: for i in range(5):print(i)传递两个参数的range()函数: for i in range(2,4):print(i)传递三个参数的range()函数: for i in range(2,20,3):print(i)range()()19 第第5 5章章 循环结构程序设计循环结构程序设计例例 用用for循环求循环求sum=0for i in range(101):sum=sum+iprint(“1+2+3+.+100”,sum)

10、sum=0for i in rang(101):sum=sum+i输出输出sum20 第第5 5章章 循环结构程序设计循环结构程序设计m=int(input(“请输入要判断的正整数请输入要判断的正整数m”))flag=1for i in range(2,m):if m%i=0:flag=0i=m if flag=1: print(“%d 是素数是素数”%m)else: print(“%d不是素数不是素数”%m) 例例 判断判断m是否为素数。是否为素数。21 第第5 5章章 循环结构程序设计循环结构程序设计例:已知四位数例:已知四位数3025具有特殊性质:它的前具有特殊性质:它的前两位数字两位数

11、字30与后两位数字与后两位数字25之和是之和是55,而,而55的平方正好等于其本身的平方正好等于其本身3025。编程列举出具。编程列举出具有该性质的四位数。有该性质的四位数。print(“满足条件的四位数分别是:满足条件的四位数分别是:”) for i in range(1000,10000): a=i/100b=i%100if (a+b)* *2=i:print(i)22 第第5 5章章 循环结构程序设计循环结构程序设计print(“满足条件的数分别是:满足条件的数分别是:”)count=0for i in range(1,100):if i%7=0 and i%11!=0 or i%11=

12、0 and i%7!=0: print(i ,end=” ”) count=coun+1 if count%10=0:print(“ ”) 例例 求出求出1到到100能被能被7或或11整除但不能被整除但不能被7和和11同时整除的所有整数同时整除的所有整数并将它们输出。每行并将它们输出。每行10个。个。23 第第5 5章章 循环结构程序设计循环结构程序设计5.3 循环嵌套循环嵌套 循环的嵌套,又称循环的嵌套,又称多层循环多层循环,应用于,应用于多多个变量同时变化个变量同时变化的情况。的情况。说明:说明:1. 外层循环可包含两个以上内循环外层循环可包含两个以上内循环 2. 嵌套的循环的执行流程嵌套

13、的循环的执行流程24 第第5 5章章 循环结构程序设计循环结构程序设计5.3 循环嵌套循环嵌套 注意:注意:1.while、for循环语句可以并列循环语句可以并列,也可以相互嵌也可以相互嵌套套,但要但要层次清楚层次清楚,不能出现交叉不能出现交叉2.多重循环程序执行时,外层循环每执行一次,多重循环程序执行时,外层循环每执行一次,内层循环都需要循环执行多次。内层循环都需要循环执行多次。1. 外循环外循环执行了执行了6次次2. 内循环内循环执行执行10次次3. 循环正常结束时循环正常结束时, 内循环执行了内循环执行了 106=60次次for i in range (6): for j in rang

14、e (10): 26 第第5 5章章 循环结构程序设计循环结构程序设计循环嵌套在使用中的循环嵌套在使用中的重点内容重点内容能够正确判断内层循环体的范围能够正确判断内层循环体的范围能够正确判断内层循环体的执行次数能够正确判断内层循环体的执行次数注意内层循环的初值设定注意内层循环的初值设定能正确处理内层循环与外层循环变量的关系能正确处理内层循环与外层循环变量的关系5.3 循环嵌套循环嵌套 27 第第5 5章章 循环结构程序设计循环结构程序设计例:输出九九表,输出格式如下:例:输出九九表,输出格式如下:1*1=11*2=22*2=4 1*3=32*3=63*3=91*4=42*4=83*4=124*

15、4=16 1*5=52*5=10 3*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*7=72*7=14 3*7=214*7=285*7=356*7=427*7=491*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=63 8*9=729*9=81for i in range (1,10,1):for j in range(1,i+1,1): print(“%d*%d=%2d ”%(j,i,i*j),end=” ”)p

16、rint(“”)28 第第5 5章章 循环结构程序设计循环结构程序设计例:找出所有的三位数,要求它的各位数字的例:找出所有的三位数,要求它的各位数字的立方和正好等于这个三位数。例如:立方和正好等于这个三位数。例如:153=13+53+33就是这样的数。就是这样的数。for i in range(1,10): for j in range(0,10): for k in range(0,10): if i*3+j*3+k*3=i*100+j*10+k: print(%d%d%d%(i,j,k)程序运行结果:15337037140729 第第5 5章章 循环结构程序设计循环结构程序设计例:求例:求

17、100200之之间的全部素数。的全部素数。print(100200之间的素数有:)for m in range(100,200): flag=1 for i in range(2,m): if m%i=0: flag=0 i=m if flag=1: print(m,end= ) 30 第第5 5章章 循环结构程序设计循环结构程序设计5.4 循环控制语句循环控制语句 有时候我们需要在循环体中提前跳出循环,或者在某种条件满足时,不执行循环体中的某些语句而立即从头开始新的一轮循环,这时就要用到循环控制语句break、continue和pass语句。31 第第5 5章章 循环结构程序设计循环结构程序

18、设计一般格式一般格式break功能功能 break语句用在循环体内,迫使所在循语句用在循环体内,迫使所在循环立即终止,即跳出所在循环体,继续环立即终止,即跳出所在循环体,继续执行循环结构后面的语句。执行循环结构后面的语句。(1) break语句语句 break expN Y32 第第5 5章章 循环结构程序设计循环结构程序设计n分析:找出分析:找出m与与n中较小的一个,则最大公约数必在中较小的一个,则最大公约数必在1与较小整数的范围内。使用与较小整数的范围内。使用for语句,循环变量语句,循环变量i从较小从较小整数变化到整数变化到1。一旦循环控制变量。一旦循环控制变量i同时能被同时能被m与与n

19、整除,整除,则则i就是最大公约数,然后使用就是最大公约数,然后使用break语句强制退出循语句强制退出循环。环。求两个整数求两个整数m与与n的最大公约数的最大公约数。m,n=eval(input(请输入两个整数:请输入两个整数:)if m100:break else:y+=x print(y=,y)程序运行结果:y= 250035 第第5 5章章 循环结构程序设计循环结构程序设计(3)pass语句语句pass语句是一个空语句,它不做任何操作,代语句是一个空语句,它不做任何操作,代表一个空操作,在特别的时候用来保证格式或是表一个空操作,在特别的时候用来保证格式或是语义的完整性。例如下面的循环语句

20、:语义的完整性。例如下面的循环语句:for i in range(5): pass该语句的确会循环该语句的确会循环5次,但是除了循环本身之外,次,但是除了循环本身之外,它什么也没做。它什么也没做。36 第第5 5章章 循环结构程序设计循环结构程序设计例:例:例:例:passpass语句应用:逐个输出语句应用:逐个输出语句应用:逐个输出语句应用:逐个输出“Python”“Python”字符串中的字字符串中的字字符串中的字字符串中的字符。符。符。符。for letter in Python: if letter = o: pass print(This is pass block) print(C

21、urrent Letter :, letter)print(End!)程序运行结果:程序运行结果:Current Letter : PCurrent Letter : yCurrent Letter : tCurrent Letter : hThis is pass blockCurrent Letter : oCurrent Letter : nEnd!37 第第5 5章章 循环结构程序设计循环结构程序设计5.5 循环结构程序举例循环结构程序举例 例:利用下面的公式求的近似值,要求累加到最后一项例:利用下面的公式求的近似值,要求累加到最后一项小于小于10-6为止。为止。程序如下:程序如下:i

22、mport maths=1n=1.0t=1.0pi=0while math.fabs(t)=1e-6: pi=pi+t n=n+2 s=-s t=s/npi=pi*4print(PI=%f%pi)程序运行结果:PI=3.14159138 第第5 5章章 循环结构程序设计循环结构程序设计例:例:“百钱百鸡百钱百鸡”问题。问题。公鸡公鸡5文钱一只,母鸡文钱一只,母鸡3文钱一只,小鸡文钱一只,小鸡3只一文只一文钱,用钱,用100文钱买一百只鸡,其中公鸡、母鸡、文钱买一百只鸡,其中公鸡、母鸡、小鸡都必须要有,问公鸡,母鸡,小鸡要买多少小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足只刚好凑足100

23、文钱?文钱?分析:显然这是一个组合问题,也可以看作是解分析:显然这是一个组合问题,也可以看作是解不定方程的问题,采用列举的方法实现。令不定方程的问题,采用列举的方法实现。令i、j、k分别表示公鸡、母鸡和小鸡的数目。分别表示公鸡、母鸡和小鸡的数目。方法一方法一令令i、j、k的列举范围分别为:的列举范围分别为:i:120(公鸡最多能买(公鸡最多能买20只)只)j:133(母鸡最多能买(母鸡最多能买33只)只)k:1100(小鸡最多能买(小鸡最多能买100只)只)可以采用三重循环逐个搜索。可以采用三重循环逐个搜索。程序如下:程序如下:for i in range(1,21): for j in ra

24、nge(1,34): for k in range(1,101): if i+j+k=100 and i*5+j*3+k/3=100: print(公鸡:公鸡:%d只只,母鸡:母鸡:%d只只,小鸡:小鸡:%d只只%(i,j,k)程序运行结果:公鸡:4只,母鸡:18只,小鸡:78只公鸡:8只,母鸡:11只,小鸡:81只公鸡:12只,母鸡:4只,小鸡:84只在程序中,循环体被执行了2033100=66000次。方法二方法二令令i、j、k的列举范围分别为(保证每种鸡至少买一的列举范围分别为(保证每种鸡至少买一只):只):i:118(公鸡最多能买(公鸡最多能买18只)只)j:131(母鸡最多能买(母鸡

25、最多能买31只)只)k:100-i-k(当公鸡和小鸡数量确定后,小鸡的数量可计算(当公鸡和小鸡数量确定后,小鸡的数量可计算得到)得到)可以采用两重循环逐个搜索。可以采用两重循环逐个搜索。程序如下:程序如下:for i in range(1,19): for j in range(1,32): k=100-i-j if i+j+k=100 and i*5+j*3+k/3=100: print(公鸡:公鸡:%d只只,母鸡:母鸡:%d只只,小鸡:小鸡:%d只只%(i,j,k)在程序中,循环体被执行了在程序中,循环体被执行了1881=558次。次。方法三方法三从题意可得到下列方程组:从题意可得到下列方

26、程组:由方程组可得到式子由方程组可得到式子7i+4j=100。由于。由于i和和j至少为至少为1,因此可知,因此可知i最大为最大为13,j最大为最大为23。方法二的两重循环可改进为以下程。方法二的两重循环可改进为以下程序:序: for i in range(1,14): for j in range(1,24): k=100-i-j if i+j+k=100 and i*5+j*3+k/3=100: print(公鸡:公鸡:%d只只,母鸡:母鸡:%d只只,小鸡:小鸡:%d只只%(i,j,k)该程序的循环体被执行了该程序的循环体被执行了1424=336次。次。方法四方法四 由方法三中的式由方法三中

27、的式7i+4j=100可得:可得:j=(100-7i)/4。观察。观察7i+4j=100,4j同同100都是都是4的倍数,因此的倍数,因此i一定也是一定也是4的倍数。的倍数。有了这些条件,程序实现时只需要对有了这些条件,程序实现时只需要对i进行逐个搜索即可,进行逐个搜索即可,i的的搜索范围为搜索范围为113。采用单层循环进行逐个搜索。采用单层循环进行逐个搜索。程序如下:程序如下:for i in range(1,14): j=(100-7*i)/4 k=100-i-j if i%4=0: print(公鸡:公鸡:%d只只,母鸡:母鸡:%d只只,小鸡:小鸡:%d只只%(i,j,k)该算法程序只循环了该算法程序只循环了13次。次。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号