《Python程序设计第4章循环结构程序设计(第6次课)汇总.ppt》由会员分享,可在线阅读,更多相关《Python程序设计第4章循环结构程序设计(第6次课)汇总.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1-2Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论程序设计的程序设计的3种基本结构种基本结构v(1)顺序结构()顺序结构(2)选择结构()选择结构(3)循环结构)循环结构 顺序结构顺序结构 是指程序流程按先后顺序执行,只有执行是指程序流程按先后顺序执行,只有执行了前一步,才能执行后一步。例如火车在轨道上行驶,只了前一步,才能执行后一步。例如火车在轨道上行驶,只有过了上一站点才能到达下一站点。有过了上一站点才能到达下一站点。 选择结构选择结构 又称分支结构,是指程序流程可以分几条又称分支结构,是指程序流程可以分几条路径
2、执行。例如在一个十字路口处,可以选择向东、南、路径执行。例如在一个十字路口处,可以选择向东、南、西、北几个方向行走。西、北几个方向行走。 循环结构循环结构 又称重复结构,是指程序流程重复执行某又称重复结构,是指程序流程重复执行某一段代码。例如万米跑,围着足球场跑道不停地跑,直到一段代码。例如万米跑,围着足球场跑道不停地跑,直到满足条件时(满足条件时(25圈)才停下来。圈)才停下来。1-3Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论语句语句A语句语句B顺序结构顺序结构流程图流程图条件判断条件判断语句语句A真真语句语句B
3、假假选择结构选择结构流程图流程图条件判断条件判断循环体循环体真真假假循环结构循环结构流程图流程图3种基本结构的流程图种基本结构的流程图1-4Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论【问题【问题4-1】 用户输入若干个分数,求所有分数用户输入若干个分数,求所有分数的平均分。每输入一个分数后询问是否继续输的平均分。每输入一个分数后询问是否继续输入下一个分数,回答入下一个分数,回答“yes”就继续输入下一就继续输入下一个分数,回答个分数,回答“no”就停止输入分数。就停止输入分数。分析:该问题需要输入若干分数并求和,这
4、是一分析:该问题需要输入若干分数并求和,这是一个重复的过程,应使用循环结构解决。循环次个重复的过程,应使用循环结构解决。循环次数事先不确定,需根据应答数事先不确定,需根据应答“yes”、“no”来决定循环是否继续。来决定循环是否继续。1-5Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论 #ques4_1.pyendFlag=yessum=0.0count=0while endFlag0=y: x=input(请输入一个分数请输入一个分数: ) sum=sum + x count=count + 1 endFlag=ra
5、w_input(继续继续输入吗输入吗(yes or no)? ) print n平均分是平均分是: , sum / count1-6Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论4.1循环结构设计问题循环结构设计问题【问题【问题4-2】用户输入一个列表,求出列表中所】用户输入一个列表,求出列表中所有正偶数之和。有正偶数之和。分析:由于不知道用户输入的具体数据及个数,分析:由于不知道用户输入的具体数据及个数,因此需要在循环结构中进行判断和累加。因此需要在循环结构中进行判断和累加。1-7Copyright SWFU-CIS
6、D, 2012. All rights reserved.计算机编程导论计算机编程导论#ques4_2.pyli=input(请输入一个列表请输入一个列表:)sum=0for x in li: if x0 and x%2=0: sum+=xprint sum=,sum程序输入及运行结果:程序输入及运行结果:请输入一个列表:请输入一个列表:2, 3, 4, -5, 6, 12sum= 241-8Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论4.2 循环结构概述循环结构概述v循环结构是一种重复执行的程序结构。实际应用中,循
7、环结构是一种重复执行的程序结构。实际应用中,常会碰到一些需要重复执行的步骤,如级数求和、常会碰到一些需要重复执行的步骤,如级数求和、统计报表等等。例如:统计报表等等。例如: (1)计算)计算 1 + 2 + 3 + + 100,这是一个级数求和,这是一个级数求和问题,需要重复执行问题,需要重复执行100次,对次,对100个数依次进行个数依次进行累加。累加。 (2)假设)假设1个班级中有个班级中有n名同学,统计男同学和女名同学,统计男同学和女同学各有多少名。该问题的求解需要重复执行同学各有多少名。该问题的求解需要重复执行n次,次,对每对每1个同学依次进行判断,同时统计男同学和女个同学依次进行判断
8、,同时统计男同学和女同学的人数。同学的人数。1-9Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论4.2 循环结构概述循环结构概述(3)给定)给定2个整数,求它们的最大公约数和最小个整数,求它们的最大公约数和最小公倍数。例如:给定公倍数。例如:给定6和和9,求最大公约数时,求最大公约数时,循环过程从循环过程从6依次递减至依次递减至1,当循环到,当循环到3时,判时,判断得断得6和和9都能被都能被3整除,于是终止循环,求得整除,于是终止循环,求得最大公约数是最大公约数是3.;求最小公倍数时,循环过程;求最小公倍数时,循环过程
9、从从9依次递增至依次递增至54,当循环到,当循环到18时,判断得时,判断得18同时能被同时能被6和和9整除,于是终止循环,求得最小整除,于是终止循环,求得最小公倍数是公倍数是18。 vPython提供了两种基本的循环结构语提供了两种基本的循环结构语句句while语句、语句、for语句语句。1-10Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论4.3 while语句语句while 表达式表达式:循环体循环体表达式表达式循环体循环体真真假假while 表达式表达式:循环体循环体else:else子句子句1-11Copyri
10、ght SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论(1)while语句是一个语句是一个条件循环语句条件循环语句,即首先计算表,即首先计算表达式,根据表达式值的真、假来决定是否继续循环。达式,根据表达式值的真、假来决定是否继续循环。 (2)while语句的语法与语句的语法与if语句类似,要使用语句类似,要使用缩进缩进来来分隔子句。分隔子句。(3)while语句的条件表达式不需要用括号括起来,语句的条件表达式不需要用括号括起来,但是表达式后面必须有但是表达式后面必须有冒号冒号。(4)使用)使用while语句编程通常会遇到两种题型,一种语句
11、编程通常会遇到两种题型,一种是循环次数事先确定的问题;一种是循环次数事先不是循环次数事先确定的问题;一种是循环次数事先不确定的问题。确定的问题。说明:说明:1-12Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论4.3.1 while语句解决不确定循语句解决不确定循环次数的问题环次数的问题【分析】【分析】该问题使用循环结构该问题使用循环结构解决,由于不确定用解决,由于不确定用户即将输入几个正整户即将输入几个正整数,因此属于不确定数,因此属于不确定循环次数的问题。循环次数的问题。【例【例4-1】编程从键盘输入若】编程从键盘
12、输入若干正整数,求所有输入整数干正整数,求所有输入整数之和。当输入整数为负数时之和。当输入整数为负数时,结束该操作。,结束该操作。1-13Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论#Exp4_1.pyprint 请输入若干正整数进行求和操作,当输入负数时结束请输入若干正整数进行求和操作,当输入负数时结束: s = 0 x = input(请输入一个整数请输入一个整数: )while x = 0: s = s + x x = input(请输入一个整数请输入一个整数: )print 整数之和整数之和=, s程序:程序
13、:程序运行结果:程序运行结果:请输入若干正整数进行求和操作,当输入负数时结请输入若干正整数进行求和操作,当输入负数时结束束: 请输入一个整数请输入一个整数: 10请输入一个整数请输入一个整数: 20请输入一个整数请输入一个整数: 301-14Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论【例【例4-2】编程从键盘输入若干个字符,一边输入】编程从键盘输入若干个字符,一边输入一边输出,当输入一边输出,当输入“#”字符时终止该操作。字符时终止该操作。【分析】【分析】(1)本题使用循环)本题使用循环结构解决,每次循环结构解决,
14、每次循环从键盘输入一个字符从键盘输入一个字符,直到输入为,直到输入为“#”字符时停止循环。字符时停止循环。(2)由于输入的字)由于输入的字符个数无法确定,因符个数无法确定,因此此循环次数不确定循环次数不确定。 是是否否1-15Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论a = raw_input(请输入字符,如果输入请输入字符,如果输入 # 号则结束输入操作号则结束输入操作: )while a != #: #判断输入的是否是井号判断输入的是否是井号print 您输入的字符是:您输入的字符是:, a #打印输入的字符打
15、印输入的字符#以下语句是再次输入一个新的字符以下语句是再次输入一个新的字符a = raw_input(请输入字符,如果输入请输入字符,如果输入 # 号则结束输入操作号则结束输入操作: )else:print 输入结束输入结束程序:程序:提问:提问:(1)循环结束后,变量)循环结束后,变量 a 中的值是什么?中的值是什么?(2)如果循环体中没有下面这条语句会怎么样?)如果循环体中没有下面这条语句会怎么样?a =raw_ input(请输入字符,如果输入请输入字符,如果输入 # 号则结束输入操作号则结束输入操作: )1-16Copyright SWFU-CISD, 2012. All rights
16、 reserved.计算机编程导论计算机编程导论4.3.2 while语句解决确定循环次数的问题语句解决确定循环次数的问题 确定循环次数的问题是指循环之前可以预确定循环次数的问题是指循环之前可以预知循环即将执行的次数,为了控制循环次数,知循环即将执行的次数,为了控制循环次数,通常在程序中设置一个计数变量,每次循环,通常在程序中设置一个计数变量,每次循环,该变量进行自增或自减操作,当变量值自增到该变量进行自增或自减操作,当变量值自增到大于设定的上限值或者自减到小于设定的下限大于设定的上限值或者自减到小于设定的下限值时,循环自动结束。值时,循环自动结束。1-17Copyright SWFU-CIS
17、D, 2012. All rights reserved.计算机编程导论计算机编程导论4.3.2 while语句解决确定循环次数的问题语句解决确定循环次数的问题【例【例4-3】 编程计算编程计算1+2+3+100 的值。的值。分析:本题使用循环结构解决,每循环一次累加分析:本题使用循环结构解决,每循环一次累加一个整数值,整数的取值范围为一个整数值,整数的取值范围为1100。由于。由于整数的范围是确定的,因此循环次数也是确定整数的范围是确定的,因此循环次数也是确定的。的。1-18Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程
18、导论4.3.2 while语句解决确定循环次数的语句解决确定循环次数的问题问题程序:程序:#Exp4_3.pyi, s = 1, 0while i = 100 :s = s + ii += 1print 1+2+3+.+100 = , s框图:1-19Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论4.3.2 while语句解决确定循环次数的语句解决确定循环次数的问题问题分析:本题使用循环结构解决,每循环一次输出一分析:本题使用循环结构解决,每循环一次输出一个列表元素值,由于列表定义后,其长度是已知个列表元素值,由于列表
19、定义后,其长度是已知的,因此循环次数也是确定的。的,因此循环次数也是确定的。【例【例4-4】 依次输出列表中依次输出列表中每个元素的值。每个元素的值。1-20Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论4.3.2 while语句解决确定循环次数的问题语句解决确定循环次数的问题程序:程序:#Exp4_4.pya_list = a, b, mpilgrim, z, examplea_len = len(a_list)i = 0while i a_len: print 列表的第列表的第, i+1, 个元个元素是:素是:,
20、a_listi i += 11-21Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论练习练习: :求求1+3+5+991+3+5+99求求2 2* *4 4* *6 6* * *12121-22Copyright SWFU-CISD, 2012. All rights reserved.计算机编程导论计算机编程导论第第6 6次上机作业次上机作业: :1.1.计算,参考值:计算,参考值: S=1.718282 S=1.71828211111*21*2*31*2*3*50S 2.2.编程求斐波拉契数列的前编程求斐波拉契数列的
21、前2020项,已知该数列项,已知该数列的第一、二项分别是的第一、二项分别是0 0、1 1,从第三项开始,每,从第三项开始,每一项都是前两项之和。例如:一项都是前两项之和。例如:0, 1, 1, 2, 3, 0, 1, 1, 2, 3, 5, 8, 135, 8, 133.3.求求1 1100100之间所有的素数,并统计素数的个之间所有的素数,并统计素数的个数。数。1-23Copyright SWFU-CISD, 2012. All rights reserved.人有了知识,就会具备各种分析能力,人有了知识,就会具备各种分析能力,明辨是非的能力。明辨是非的能力。所以我们要勤恳读书,广泛阅读,所
22、以我们要勤恳读书,广泛阅读,古人说古人说“书中自有黄金屋。书中自有黄金屋。”通过阅读科技书籍,我们能丰富知识,通过阅读科技书籍,我们能丰富知识,培养逻辑思维能力;培养逻辑思维能力;通过阅读文学作品,我们能提高文学鉴赏水平,通过阅读文学作品,我们能提高文学鉴赏水平,培养文学情趣;培养文学情趣;通过阅读报刊,我们能增长见识,扩大自己的知识面。通过阅读报刊,我们能增长见识,扩大自己的知识面。有许多书籍还能培养我们的道德情操,有许多书籍还能培养我们的道德情操,给我们巨大的精神力量,给我们巨大的精神力量,鼓舞我们前进鼓舞我们前进。进入夏天,少不了一个热字当头,电扇空调陆续登场,每逢此时,总会想起那一把蒲
23、扇。蒲扇,是记忆中的农村,夏季经常用的一件物品。记忆中的故乡,每逢进入夏天,集市上最常见的便是蒲扇、凉席,不论男女老少,个个手持一把,忽闪忽闪个不停,嘴里叨叨着“怎么这么热”,于是三五成群,聚在大树下,或站着,或随即坐在石头上,手持那把扇子,边唠嗑边乘凉。孩子们却在周围跑跑跳跳,热得满头大汗,不时听到“强子,别跑了,快来我给你扇扇”。孩子们才不听这一套,跑个没完,直到累气喘吁吁,这才一跑一踮地围过了,这时母亲总是,好似生气的样子,边扇边训,“你看热的,跑什么?”此时这把蒲扇,是那么凉快,那么的温馨幸福,有母亲的味道!蒲扇是中国传统工艺品,在我国已有三千年多年的历史。取材于棕榈树,制作简单,方便携带,且蒲扇的表面光滑,因而,古人常会在上面作画。古有棕扇、葵扇、蒲扇、蕉扇诸名,实即今日的蒲扇,江浙称之为芭蕉扇。六七十年代,人们最常用的就是这种,似圆非圆,轻巧又便宜的蒲扇。蒲扇流传至今,我的记忆中,它跨越了半个世纪,也走过了我们的半个人生的轨迹,携带着特有的念想,一年年,一天天,流向长长的时间隧道,袅