python数据处理的流程控制课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《python数据处理的流程控制课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- python 数据处理 流程 控制 课件
- 资源描述:
-
1、第二次上机总结第二次上机总结11、以file的形式写代码,交互式的界面只适合于单语句代码的测试2、file文件中以函数为单位写代码,方便调用以实现代码重用3、inport语句放在程序的开头,即程序总注释后面,第一个函数前面1第二次上机总结第二次上机总结2提高课堂效率了解每次课的主要内容2第第3章章数据处理的流程控制数据处理的流程控制 计算机程序根据语句的顺序依次向下执行。#convert.py#A program to convert Celsius temps to Fahrenheitdef main():celsius=input(What is the.”)fahrenheit=9.0
2、/5.0*celsius+32 print The temperature is,fahren.main()n流程图:用标准化的图形符号来表示程序步骤流程图:用标准化的图形符号来表示程序步骤 但这种顺序执行显然是不够的,我们会要求某个功能重复执行,也会要求根据不同的前提条件执行不同的功能,所以引入了另两种控制结构分支和循环3.2 分支结构3.3 异常处理3.4 循环结构3.5 结构化程序设计1 单分支结构单分支结构2 二分支结构二分支结构3 多分支结构多分支结构(一)温度转换的例子(一)温度转换的例子(eg3_1.py)#convert.py#A program to convert Cels
3、ius temps to Fahrenheitdef main():celsius=input(What is the.”)fahrenheit=9.0/5.0*celsius+32 print The temperature is,fahren.main()(一)温度转换的例子(一)温度转换的例子希望他可以根据不同的温度给出不同的提示。If fahrenheit 90 print a hot warningIf fahrenheit 90:print Its really hot out there,.if fahrenheit 30:print Brrrrr.Be sure to dres
4、s warmlymain()单分支语句(二)用于执行决策的(二)用于执行决策的if语句语句语法:语法:if:(if fahrenheit 90:):)next 语义:先判断条件表达式(condition)ntrue,执行语句体(body),再转向下一个语句nfalse,忽略语句体(body),直接转向下一个语句n语句体(body):n一个或多个语句 n在:后面缩进显示,body中的各语句缩进对齐(三)条件表达式的格式(三)条件表达式的格式简单条件表达式(condition):比较两个表达式 (a+2=a(a+2=a*2)2)n关系运算:,=,!=n数值比较:整型数的比较,实型数的比较n字符串比
5、较:按字典序。字母序由编码(ASCII等)决定.如:大写字母在小写字母前.称为布尔表达式布尔表达式结果为true/false,1/0Relation operation(关系运算符)3.2 分支结构3.3 异常处理3.4 循环结构3.5 结构化程序设计1 单分支结构单分支结构2 二分支结构二分支结构3 多分支结构多分支结构求一元二次方程的例子求一元二次方程的例子(ver1.0)#quadratic.py import mathdef main():print This program finds the real.a,b,c=input(Please enter.(a,b,c):)discRo
6、ot=math.sqrt(b*b-4*a*c)root1=(-b+discRoot)/(2*a)root2=(-b-discRoot)/(2*a)print The solutions are:,root1,root2 main()This program finds the real solutions to a quadraticPlease enter the coefficients(a,b,c):1,1,2Traceback(most recent call last):File C:Documents and SettingsTerryMy DocumentsTeachingW04
7、CS 120Textbookcodechapter3quadratic.py,line 21,in-toplevel-main()File C:Documents and SettingsTerryMy DocumentsTeachingW04CS 120Textbookcodechapter3quadratic.py,line 14,in main discRoot=math.sqrt(b*b-4*a*c)ValueError:math domain errorver1.0的运行的运行引入决策分支结构#quadratic2.py,当,当discrim=0时才有解时才有解import math
8、 def main():print This program finds the real solutions.n a,b,c=input(Please enter the.(a,b,c):)discrim=b*b-4*a*c if discrim=0:discRoot=math.sqrt(discrim)root1=(-b+discRoot)/(2*a)root2=(-b-discRoot)/(2*a)print nThe solutions are:,root1,root2main()求一元二次方程的例子求一元二次方程的例子(ver2.0)ver2.0的运行结果 This program
9、finds the real solutions to a quadraticPlease enter the coefficients(a,b,c):1,1,1 discRoot=0:discRoot=math.sqrt(discrim)root1=(-b+discRoot)/(2*a)root2=(-b-discRoot)/(2*a)print nThe solutions are:,root1,root2 if discRoot 0:print“The equation has no real roots!”main()求一元二次方程的例子求一元二次方程的例子(ver2.0+)该程序两个
10、if语句的流程图?做了基于同一个值的两次条件表达式的判断,不够高效二分支结构二分支结构二分支结构二分支结构语法:语法:if:else:next statements#quadratic3.py 考虑到负值并会给出提示考虑到负值并会给出提示import math def main():print This program finds the real solutions.n a,b,c=input(Please enter the.(a,b,c):)discrim=b*b-4*a*c if discrim 0:print nThe equation has no real roots!else:
11、discRoot=math.sqrt(b*b-4*a*c)root1=(-b+discRoot)/(2*a)root2=(-b-discRoot)/(2*a)print nThe solutions are:,root1,root2 main()求一元二次方程的例子求一元二次方程的例子(ver3.0)This program finds the real solutions to a quadratic Please enter the coefficients(a,b,c):1,2,1 The solutions are:-1.0-1.0 该程序还可以改善:同时0三种情况ver3.0的运行结
12、果的运行结果3.2 分支结构3.3 异常处理3.4 循环结构3.5 结构化程序设计1 单分支结构单分支结构2 二分支结构二分支结构3 多分支结构多分支结构多分支结构多分支结构if discrim 0:print Equation has no real rootselse:#大于等于大于等于0的情况的情况 if discrim=0:root=-b/(2*a)print There is a double root at,root else:#大于大于0的情况的情况 discRoot=math.sqrt(b*b-4*a*c)root1=(-b+discRoot)/(2*a)root2=(-b-d
13、iscRoot)/(2*a)print nThe solutions are:,root1,root2if.else的嵌套:if或else后面的语句块可以是ifelse语句多分支结构的实现多分支结构的实现1:if.else的嵌套的嵌套教材教材p121:p121:第第1313题题程序设计:输入百分制的考试分数,输出相应的等级制名称。设A:90-100,B:80-89,C:70-79,D:60-69,F:60分以下多层嵌套会导致缩进很多多分支结构的实现多分支结构的实现2:elif语法:语法:if:elif:elif:else:语义语义:找到第一个为真的条件找到第一个为真的条件表达表达式式并执行对应
14、语句序列并执行对应语句序列,控,控制转向下一条语句;若无,制转向下一条语句;若无,则执行则执行elseelse下的语句序列下的语句序列,控制转向控制转向下一条语句下一条语句。#quadratic4.py 同时考虑三种情况同时考虑三种情况import math def main():print This program finds the real solutions.n a,b,c=input(Please enter the.(a,b,c):)discrim=b*b-4*a*c if discrim 0:print nThe equation has no real roots!elif d
15、iscrim=0:root=-b/(2*a)print nThere is a double root at,root else:discRoot=math.sqrt(b*b-4*a*c)root1=(-b+discRoot)/(2*a)root2=(-b-discRoot)/(2*a)print nThe solutions are:,root1,root2 求一元二次方程的例子求一元二次方程的例子(ver4.0)教材教材p121:p121:第第1313题题程序设计:输入百分制的考试分数,输出相应的等级制名称。设A:90-100,B:80-89,C:70-79,D:60-69,F:60分以下
16、Boolean操作符操作符n有时候简单的bool表达式还不够n用and、or、not 等去组合多个布尔表达式 and or not 布尔操作结果布尔操作结果PQP and QP or Qnot PTTTTFTFFTFFTFTTFFFFT我们可以用布尔操作符任意地组合各种布尔表达式。最终的结果还是T或F。Boolean操作符操作符a or not b and c 是是T还是还是F(a,b,c皆为皆为T)?)?操作符的优先级:not and or上述表达式等价于(a or(not b)and c)在记不住优先级的时候,加小括号确定优先级写写Bool表达式的例子表达式的例子:模拟模拟racquetb
17、all的结束的结束两个人比赛,得分记为两个人比赛,得分记为scoreA,scoreB,没分出胜负之前,没分出胜负之前循环比赛,直到有一人胜出。循环的退出表达式怎么写?循环比赛,直到有一人胜出。循环的退出表达式怎么写?n先得15分者胜(1)有一位得15分的表示 scoreA=15 or scoreB=15(2)满足上述条件的时候停止,否则继续比赛 while not(scoreA=15 or scoreB=15):#continue playing只要满足一个条件就要退出取not的时候就是没退出,继续游戏例例:模拟模拟racquetball的结束的结束n先得先得15分或分或7:0者胜者胜whil
18、e not(a=15 or b=15 or(a=7 and b=0)or(b=7 and a=0))n必须有一方大于必须有一方大于15并且至少要多并且至少要多2分才胜分才胜while not(a=15 and a-b=2)or(b=15 and b-a=2)Boolean代数代数n对布尔表达式的要求:能写:将实际问题所涉及的条件表达成布尔表达式 能计算:能对布尔表达式进行演算和推导n布尔表达式也能进行代数计算(布尔逻辑)Boolean代数代数nand has properties similar to*nor has properties similar to+n0 and 1 corresp
19、ond to false and true,respectively.AlgebraBoolean algebraa*0=0a and false=falsea*1=aa and true=aa+0=aa or false=aBoolean代数代数n任何数任何数 or true,其结果肯定为,其结果肯定为true:a or true=truenand和和or服从分配律服从分配律:a or(b and c)=(a or b)and(a or c)a and(b or c)=(a and b)or(a and c)n双重否定就是肯定双重否定就是肯定:not(not a)=an摩根定律摩根定律:no
20、t(a or b)=(not a)and(not b)not(a and b)=(not a)or(not b)Python对布尔值和布尔运算的处理很灵活可扩展阅读 中文教材2.4.4 Python中真假的表示与计算 3.2 分支结构分支结构3.3 异常处理异常处理3.4 循环结构循环结构3.5 结构化程序设计结构化程序设计quadratic.pyquadratic.py程序会产生很多问题程序会产生很多问题quadratic2-4.pyquadratic2-4.py利用决策分支避免了其利用决策分支避免了其中的开方为负数时的运行错误中的开方为负数时的运行错误在其他很多程序里,也经常用决策分支结构
21、保护程序,避免出现虽然几率很小但还是不可避免会发生的错误。#quadratic.py import mathdef main():print This program finds the real.a,b,c=input(Please enter.(a,b,c):)if a=0:#非二次方程非二次方程 handler1 if type(a)!=int or type(b)!=int or type(c)!=int:#输入类型错误输入类型错误 handler2 discRoot=math.sqrt(b*b-4*a*c)if discRoot0:handler3 root1=(-b+discRoo
22、t)/(2*a)root2=(-b-discRoot)/(2*a)print The solutions are:,root1,root2 main()raw_input()当程序中充斥着这样的错误检测代码时,解决问题的算法反而不明显了。是不是可以把程序的主干留着,错误处理代码提出来放到专门的地方异常处理机制异常处理机制n异常处理机制n把错误集中在一起处理,以免影响算法的主线条。nPython提供try.except.n可使程序不因运行错误而崩溃,尽量让用户不受意外结果的困扰。异常处理语句异常处理语句语法:try:except:except:.except:nextstatement语义:执行
23、。若无错,控制转下一语句;若有错,查找匹配该错误的except子句,找到则执行相应的处理程序,找不到则程序崩溃,系统报错。编程实例:完善编程实例:完善quadratic.pyquadratic.pyn用异常处理语句来捕获math.sqrt的溢出错误(quadratic5.py)try:.except ValueError:.n错误类型:从系统报错信息中可得。n如ValueError,TypeError,NameError等nTraceback(most recent call last):File C:Documents and SettingsTerryMy DocumentsTeachin
24、gW04CS120Textbookcodechapter3quadratic.py,line 21,in-toplevel-main()File C:Documents and SettingsTerryMy DocumentsTeachingW04CS 120Textbookcodechapter3quadratic.py,line 14,in main discRoot=math.sqrt(b*b-4*a*c)ValueError:math domain error#quadratic5.pyimport mathdef main():print This program finds th
展开阅读全文