《Python程序设计基础》课件-第4章 程序控制结构_第1页
《Python程序设计基础》课件-第4章 程序控制结构_第2页
《Python程序设计基础》课件-第4章 程序控制结构_第3页
《Python程序设计基础》课件-第4章 程序控制结构_第4页
《Python程序设计基础》课件-第4章 程序控制结构_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录CONTENT4.14.24.34.4程序流程描述分支结构循环结构random库及使用4.54.64.7异常处理程序调试学生成绩处理实例4.1程序流程描述计算机在解决具体问题时,是按照程序员事先安排好的步骤进行的。计算机解决问题的步骤通常称之为算法。程序员用编程语言将算法具体实现,就是程序。程序员在编程之前,需要先使用某种工具将算法描述清楚,这个过程就是程序流程描述

MORETHENTEMPLATE算法的基本概念计算机在解决具体问题时,是按照程序员事先安排好的步骤进行的。计算机解决问题的步骤通常称之为算法。程序的基本概念程序员用编程语言将算法具体实现,就是程序。三种程序控制结构顺序结构:按顺序执行某个过程分支结构:根据条件做不同的处理循环结构:重复执行某个过程浙江财经大学东方学院信息分院34.1.1算法与程序控制结构

MORETHENTEMPLATE程序流程图的作用程序流程图简单直观,是描述算法的有力工具。程序流程图的分类传统流程图和N-S流程图两种浙江财经大学东方学院信息分院44.1.2程序流程图

MORETHENTEMPLATE传统流程图符号总共6种符号,可以表示三种程序控制结构,描述任意复杂的算法浙江财经大学东方学院信息分院54.1.2程序流程图

MORETHENTEMPLATE三种程序控制结构流程图示例浙江财经大学东方学院信息分院64.1.2程序流程图

MORETHENTEMPLATERaptor介绍Raptor是一种基于流程图仿真的可视化的程序设计环境,为程序和算法设计的基础课程的教学提供实验环境。Raptor直观易学,设计的流程图可以执行验证,并可以转化为相应的编程语言Raptor的运行界面Raptor软件运行时,界面左边上部是流程图基本符号区,下部是流程图运行时变量显示区。右边是流程图区域,流程图运行时还能显示相应的对话框。浙江财经大学东方学院信息分院74.1.3流程图描述工具Raptor

MORETHENTEMPLATERaptor的基本使用Raptor中流程图的符号与传统流程图的符号基本一致。画图的基本方法:根据流程图中的出现顺序,将相应的基本流程图符号用鼠标拖拽到流程图区域,并做简单的设置,所有的符号设置好并按顺序有机连接,就完成了流程图。基本的语法,比如变量、运算符、表达式和赋值等,大部分与Python语言类似。浙江财经大学东方学院信息分院84.1.3流程图描述工具Raptor

MORETHENTEMPLATE【例4‑1】输入3个数,求平均值浙江财经大学东方学院信息分院94.1.4程序流程图描案例

MORETHENTEMPLATE【例4‑2】输入两个数,找出最大值浙江财经大学东方学院信息分院104.1.4程序流程图描案例

MORETHENTEMPLATE【例4‑3】输入1个年份,判断是否是闰年(闰年的条件:年份能被4整除但不能被100整除,或者能被400整除)浙江财经大学东方学院信息分院114.1.4程序流程图描案例

MORETHENTEMPLATE【例4‑4】

输入1个正整数,判断它是否为素数。(素数是指除了1和本身之外,不能被任何数整除的数)浙江财经大学东方学院信息分院124.1.4程序流程图描案例4.2分支结构计算机在处理复杂问题时,往往需要对给定的条件进行判断,然后根据判断的结果进行相应的处理,这在编程中就需要用到分支结构语句。根据问题的复杂程度,在Python中我们可以选用单分支语句、二分支语句和多分支语句。1,35926778%浙江财经大学东方学院信息分院144.2.1单分支if语句单分支if语句的格式单分支if语句执行过程if语句首先判断条件表达式是否成立,也就是计算条件表达式的值,如果值为True,表示条件表达式成立,如果值为False,表示条件表达式不成立。当条件表达式成立时,执行代码块,否则什么也不做。代码块有可能是一条或多条语句,并且注意要采用缩进格式,条件表达式后面的冒号不要遗漏。1,35926778%浙江财经大学东方学院信息分院154.2.1单分支if语句【例4‑5】输入1个数,判断它是否为奇数思路:用这个数对2求余,根据余数判断该数是否为奇数1,35926778%浙江财经大学东方学院信息分院164.2.1单分支if语句【例4‑6】输入3个数,找出最大值思路:最大数必定同时大于或等于其它两个数,把所有情况都列举出来。26778%浙江财经大学东方学院信息分院174.2.1单分支if语句【例4‑7】:输入三角形3条边长a,b,c,如果能组成三角形,则计算面积。思路:根据任意两边之和大于第三边的要求,判断a,b,c是否能组成三角形,同时a,b,c必须大于0,另外注意代码块的缩进。1,35926778%浙江财经大学东方学院信息分院184.2.2二分支if语句二分支if语句的格式二分支if语句执行过程if语句首先判断条件表达式是否成立,也就是计算条件表达式的值,如果值为True,表示条件表达式成立,如果值为False,表示条件表达式不成立。当条件表达式成立时,执行代码块1,否则执行代码块2。代码块1和代码块2有可能是一条或多条语句,并且注意要采用缩进格式,条件表达式后面的冒号不要遗漏。26778%浙江财经大学东方学院信息分院194.2.2二分支if语句【例4‑8】输入1个数,判断它奇数还是偶数思路:通过这个数对2求余,根据余数判断该数是奇数还是偶数1,35926778%浙江财经大学东方学院信息分院204.2.2二分支if语句【例4‑9】输入3个数,找出最大值思路:先找出前两个数中较大的那个数,然后再跟第3数个比较。1,359浙江财经大学东方学院信息分院214.2.3多分支if语句多分支if语句的格式多分支if语句执行过程多分支if语句依次判断条件表达式1至条件表达式n-1是否成立,只要有一个成立,则执行对应的代码块,否则执行代码块n。这里代码块1至代码块n有可能是一条或多条语句,并且注意要采用缩进格式,条件表达式和else后面的冒号不要遗漏。浙江财经大学东方学院信息分院224.2.3多分支if语句【例4‑10】输入学生百分制的成绩score,将它转化为五级制grade(score>=90,grade为“优”;80<=score<90,grade为“良”;70<=score<80,grade为“中”;60<=score<70,grade为“及格”;score<60,grade为“不及格”)思路:根据给定的等级条件利用多分支if语句依次判断,注意条件判断的顺序很重要。浙江财经大学东方学院信息分院234.2.3多分支if语句【例4‑10】输入学生百分制的成绩score,将它转化为五级制grade(score>=90,grade为“优”;80<=score<90,grade为“良”;70<=score<80,grade为“中”;60<=score<70,grade为“及格”;score<60,grade为“不及格”)思路:根据给定的等级条件利用多分支if语句依次判断,注意条件判断的顺序很重要。浙江财经大学东方学院信息分院244.2.4if语句嵌套if语句嵌套概述在前面介绍的3种if语句中,代码块又可以是if语句,这3种if语句可以互相嵌套,这样构成了if语句的嵌套结构,嵌套结构在做复杂条件判断时经常用到。使用时要注意嵌套if语句的缩进和对齐。if语句嵌套示例浙江财经大学东方学院信息分院254.2.4if语句嵌套【例4‑11】输入3个数,找出最大值思路:先比较前两个数的大小,根据比较结果再与第3个数比较,然后确定最大值。浙江财经大学东方学院信息分院264.2.4if语句嵌套【例4‑12】输入年份,判断是否为闰年(闰年的条件:年份能被4整除但不能被100整除,或者能被400整除)思路:闰年的判断涉及3个判断:年份能被4整除、年份不能被100整除、年份能被400整除。我们首先要搞清楚这3个判断之间的关系,然后使用if语句从任意一个判断开始,根据判断结果再使用嵌套的if语句再进行判断,最终确定该年份是否为闰年。这里我们从年份能被4整除开始判断。浙江财经大学东方学院信息分院274.2.5分支结构案例【例4‑13】输入学生百分制的成绩score,将它转化为五级制grade(转换要求同【例4-10】)思路:我们从score

>=

70这个条件开始判断,根据判断结果再分别使用嵌套的if语句继续判断,直到所有情况分清楚为止。浙江财经大学东方学院信息分院284.2.5分支结构案例【例4‑14】设计一个石头剪刀布的小游戏。从键盘分别输入计算机和人出的手势情况(石头、剪刀和布,分别输入名称即可),然后程序判定谁赢了。思路:先判定平局的情况,然后根据人出的手势情况(3种)与计算机出的情况进行比较,判定输赢。这里我们用到了多分支的if语句嵌套二分支的if语句。4.3循环结构

我们用计算机解决问题时,可能需要多次重复执行某一个有规律的过程,这个比较适合用循环结构来处理。根据重复执行次数的确定性,循环结构可以分为循环次数确定的循环和循环次数不确定的循环。Python语言一般用for语句处理循环次数确定的循环,用while语句处理循环次数不确定的循环。

MORETHENTEMPLATEfor循环语句的基本格式for循环语句的执行过程for语句执行次数是由遍历结构中元素的个数来确定的。当for语句执行时,循环变量依次取遍历结构中每一个元素的值,然后执行代码块,代码块又叫循环体,可能是一条语句或多条语句,要注意缩进对齐。遍历结构可以是字符串、range()函数、组合数据或文件等,本章先介绍字符串、range()函数作为遍历结构。浙江财经大学东方学院信息分院304.3.1for语句

MORETHENTEMPLATEfor循环语句遍历结构(1)字符串作为遍历结构(2)range()函数作为遍历结构 range(n)

产生序列:0,1,2,3,⋯

⋯,𝑛

−1

range(m,n)

产生序列:𝑚,𝑚+1,𝑚+2,⋯

⋯,𝑛

−1

range(m,n,d)

产生序列:𝑚,𝑚+𝑑,𝑚+2𝑑,⋯

⋯,按步长d递增,如果d为负,则递减,直至那个最接近但不等于n的值浙江财经大学东方学院信息分院314.3.1for语句

MORETHENTEMPLATE【例4‑15】输入一串字符串,统计其中大写字母的个数浙江财经大学东方学院信息分院324.3.1for语句

MORETHENTEMPLATE【例4‑16】输入正整数n,求1到n之间所有的整数和思路:根据输入的正整数n,调用range函数产生遍历序列,用for语句实现浙江财经大学东方学院信息分院334.3.1for语句

MORETHENTEMPLATE【例4‑17】输入正整数n,求1到n之间所有的能被3整除的偶数和思路:根据输入的正整数n,调用range函数产生偶数序列,再for语句中判断序列中的每个数是否能被3整除。浙江财经大学东方学院信息分院344.3.1for语句1,35926778%浙江财经大学东方学院信息分院354.3.2while语句while循环语句的基本格式while循环语句的执行过程while语句用条件表达式来控制循环,当条件表达式的值为True时,执行代码块,直到条件表达式的值为False,结束循环。这里的代码块又叫循环体,可能是一条语句或多条语句,要注意缩进对齐。用while语句设计程序时,要找到一个合适的条件表达式,使得循环能够运转起来。在代码块中,一般要有能够使条件表达式的值趋向于False的语句,这样循环才会结束。1,35926778%浙江财经大学东方学院信息分院364.3.2while语句【例4‑18】输入正整数n,求1到n之间所有的整数和思路:根据输入的正整数n,设计合适的循环条件表达式,用while语句实现。1,35926778%浙江财经大学东方学院信息分院374.3.2while语句【例4‑19】输入n个整数,找出最大值

思路:假设输入的第一个数是最大值Max,后面输入的n-1个数依次与Max比较,如果比Max大,就把它赋值给Max。1,35926778%浙江财经大学东方学院信息分院384.3.3break和continue语句break和continue语句的作用在实际编程中,为了提高效率或者控制的需要,可能需要去改变正常的循环流程,比如提前结束循环或者提前进入下一次循环。break和continue用于改变正常的循环流程break语句用于提前结束循环continue语句用于提前结束本次循环1,35926778%浙江财经大学东方学院信息分院394.3.3break和continue语句【例4‑20】判断正整数n(n>=2)是否为素数

思路:根据素数的定义,设计循环,取2到n/2之间所有的数,用n来整除,只要找到一个能被整除的就结束循环,然后判断循环是否是正常结束的,以此来判断n是否为素数。1,35926778%浙江财经大学东方学院信息分院404.3.3break和continue语句【例4‑21】判定正整数n是否为完数(完数的定义:如果一个数恰好等于它的真因子之和,则称该数为完数。例如,6是完数,6=1+2+3)思路:根据完数的定义,设计循环,取1到n/2之间所有的数,用n来整除,如果能被整除,就累加起来,最后判断累加和与n是否相等,以此来判断n是否为完数。

MORETHENTEMPLATEelse子句的作用循环结束有两种方式,一种是正常结束,另一种是使用break语句提前结束。Python语言可以在循环语句中使用else子句,对两种不同的循环退出方式做不同的处理。当循环正常结束时,执行else结构中的代码。如果是提前结束循环,else结构中的代码不执行。浙江财经大学东方学院信息分院414.3.4循环语句中的else子句

MORETHENTEMPLATE带else子句for语句的基本使用格式浙江财经大学东方学院信息分院424.3.4循环语句中的else子句

MORETHENTEMPLATE带else子句while语句的基本使用格式浙江财经大学东方学院信息分院434.3.4循环语句中的else子句

MORETHENTEMPLATE【例4‑22】判断正整数n(n>=2)是否为素数(方法2)浙江财经大学东方学院信息分院444.3.4循环语句中的else子句

MORETHENTEMPLATE多重循环的含义多重循环又称为循环嵌套,也就是在循环体里再嵌套另一个循环,比较常用的就是双重循环。双重循环的外层循环通常叫外循环,嵌套的循环通常叫内循环。外循环和内循环都可以根据需要使用for语句或while语句。浙江财经大学东方学院信息分院454.3.5多重循环

MORETHENTEMPLATE多重循环案例1浙江财经大学东方学院信息分院464.3.5多重循环多重循环案例2浙江财经大学东方学院信息分院474.3.5多重循环

MORETHENTEMPLATE浙江财经大学东方学院信息分院484.3.5多重循环【例4‑23】输入正整数n,求1+(1+2)+(1+2+3)+……+(1+2+3+……+n)思路:这个式子是由n个式子的和相加组成的,每个式子是1+2+3+……+i的形式。因此,我们可以设计外循环控制n个式子的和相加,内循环用于求每个式子的和。

MORETHENTEMPLATE浙江财经大学东方学院信息分院494.3.5多重循环【例4‑24】输出如下图形(n=7)思路:图形由7行组成,每行由2*i个“*”号组成,并考虑到每行“*”之前的空格。可以设计外循环控制行的输出,每行的输出由内循环控制。内循环也可以由字符串运算代替,更加简单。浙江财经大学东方学院信息分院504.3.5多重循环想一想,如果要输出如下几种图形,应该怎么处理?1,35926778%浙江财经大学东方学院信息分院514.3.6循环结构案例【例4‑25】输出斐波那契数列的前n项,每行输出5项。斐波那契数列(Fibonaccisequence),指的是这样一个数列:1、1、2、3、5、8、13、21、……。这个数列从第3项开始,每一项都等于前两项之和。

思路:用a,b代表斐波那契数列的任意连续两项(初始值为:1、1),求出下一项c,然后然后得到下一个连续两项a、b,用循环重复上述过程。1,35926778%浙江财经大学东方学院信息分院524.3.6循环结构案例【例4‑26】输出100以内的素数,每行输出5个思路:设计外循环,对100以内的数进行扫描,设计内循环判断该数是否为素数1,35926778%浙江财经大学东方学院信息分院534.3.6循环结构案例【例4‑27】改进【例4-10】,某班有n个学生,本学期学了m门课,从键盘输入每个学生每门课的成绩,统计每门课成绩等级分布的情况思路:设计外循环对m门课进行扫描,设计内循环输入每门课所有学生的成绩,每输入一个成绩,就进行等级转换并统计。4.4random库及使用Python语言主要通过random库来处理与随机数有关的问题。

MORETHENTEMPLATErandom库的作用Python语言主要通过random库来处理与随机数有关的问题随机种子随机数种子确定产生的随机数序列random库的使用用importrandom或fromrandomimport*语句导入random库浙江财经大学东方学院信息分院554.4.1random库及常用函数

MORETHENTEMPLATErandom库的主要函数浙江财经大学东方学院信息分院564.4.1random库及常用函数

MORETHENTEMPLATE浙江财经大学东方学院信息分院574.4.1random库及常用函数【例4‑28】random库函数使用示例

MORETHENTEMPLATE浙江财经大学东方学院信息分院584.4.1random库及常用函数【例4‑28】random库函数使用示例

MORETHENTEMPLATE浙江财经大学东方学院信息分院594.4.2random库应用案例【例4‑29】设计猜数游戏。计算机随机产生一个100以内的整数,让用户来猜,用户猜对了,游戏结束。如果用户猜错了,给用户必要的提示。思路:选择合适的随机函数产生一个100以内的整数,设计循环,当用户输入猜测的数不正确时,提示用户继续猜测,直到正确为止。

MORETHENTEMPLATE浙江财经大学东方学院信息分院604.4.2random库应用案例【例4‑30】模拟掷骰子10000次,统计两个骰子点数相同的概率。

思路:利用随机函数,随机产生两个1-6之间的随机数,代表一次掷骰子的结果。设计循环,执行10000次,统计点数相同的次数。

MORETHENTEMPLATE浙江财经大学东方学院信息分院614.4.2random库应用案例【例4‑31】改进前面【例4-14】石头剪刀布的小游戏。从键盘输入玩游戏的局数,每局让计算机随机产生一种手势,然后从键盘输入人出的手势情况(石头、剪刀和布,分别输入名称即可),最后程序判定输赢并统计输赢局数。思路:在【例4-14】的基础上,设计循环,用随机函数让计算机随机产生一种手势。然后与人的输入手势进行比较,判定输赢并统计结果。

MORETHENTEMPLATE浙江财经大学东方学院信息分院624.4.2random库应用案例4.5异常处理异常是指程序运行过程产生的错误。在异常产生时,我们需要捕获异常,对异常进行善后处理,使程序不会意外终止,将异常对程序的影响降到最低。Python提供了异常处理的机制,包括异常类和异常处理处理语句。1,35926778%浙江财经大学东方学院信息分院644.5.1异常概述异常含义

异常是指程序运行过程产生的错误,比如被零除、打开一个不存在的文件等。这些错误会使程序运行结束,并输出出错信息,也就是会改变程序正常的流程。因此,在异常产生时,我们需要捕获异常,对异常进行善后处理,使程序不会意外终止,将异常对程序的影响降到最低。异常处理使程序能够处理异常后继续正常执行。 Python提供了异常处理的机制,包括异常类和异常处理处理语句。常见的异常如表4-3所示,不同的异常由相应的类来处理。Python通过异常处理语句来捕获并处理异常。1,35926778%浙江财经大学东方学院信息分院654.5.1异常概述常见的异常1,35926778%浙江财经大学东方学院信息分院664.5.1异常概述1,35926778%浙江财经大学东方学院信息分院674.5.2异常处理语句异常处理语句格式及含义1,35926778%浙江财经大学东方学院信息分院684.5.2异常处理语句【例4‑30】模拟异常处理演示。对【例4‑32】进行完善,能够对常见的输入错误进行异常处理,代码如下:4.6程序调试程序调试是指程序员将编制的程序投入实际运行前,用手工或编译程序(开发工具)等手段进行测试,修正语法错误和逻辑错误的过程,这是保证计算机软件系统正确性的必不可少的步骤。1,35926778%浙江财经大学东方学院信息分院7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论