




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据处理的流程控制,分支控制结构,LuChaojun,SJTU,2,LuChaojun,SJTU,2,2,流程控制,数据是被加工处理的原材料,而处理过程要用流程控制结构来描述类比:烹调=食材+烹制过程烹制过程:先炒再煮;如果淡了则加盐;反复翻炒5分钟;.常见的流程控制结构顺序,跳转,分支,循环,子程序等好的流程:结构清晰,易理解,易验证,易维护,LuChaojun,SJTU,3,LuChaojun,SJTU,3,3,顺序控制结构,按语句的自然先后顺序执行,LuChaojun,SJTU,4,LuChaojun,SJTU,4,4,编程实例,温度转换程序eg3_1.py:华氏转换成摄氏流程图:用标准化的图形符号来表示程序步骤流程图中的步骤可以是不同抽象级的,LuChaojun,SJTU,5,LuChaojun,SJTU,5,5,分支控制结构(1),可以选择不同的执行路径单分支结构if:布尔表达式:语句序列.左边需要缩进一些空格.语义:计算的真假.若为真,则执行,并把控制转向下一条语句;若为假,则直接把控制转向下一条语句.,LuChaojun,SJTU,6,LuChaojun,SJTU,6,布尔表达式(1),是一个布尔表达式.结果为布尔值True或False简单布尔表达式:关系运算:=,!=数值比较字符串比较:按字典序.字符序由编码(ASCII等)决定.如:大写字母在小写字母前.列表,元组的比较,LuChaojun,SJTU,布尔表达式(2),复杂布尔表达式:布尔运算:and,or,notandornot,LuChaojun,SJTU,7,LuChaojun,SJTU,8,8,and的定义,and表示“并且”:PandQ为真iffP和Q都为真真值表见右例(32)and(21)True(32)and(23)False,LuChaojun,SJTU,9,9,or的定义,or表示“或者”:PorQ为假iffP和Q都为假真值表见右与日常用语中互斥的“或”不同!例(32)or(3(23)or(24)False,LuChaojun,SJTU,10,10,not的定义,not表示“否定”:notP为真iffP为假.真值表见右例not32Falsenotnot32True,布尔运算符的优先级,not最高,and次之,or最低Q:aornotbandc何意?A:aor(notb)andc)最好使用括号!,LuChaojun,SJTU,11,例:一局乒乓球比赛的结束,双方任何人先得11分a=11orb=11更准确的:一方至少要多2分才胜(a=11anda-b=2)or(b=11andb-a=2)或者写成(a=11orb=11)andabs(a-b)=2,LuChaojun,SJTU,12,LuChaojun,SJTU,13,LuChaojun,SJTU,13,13,编程实例,温度转换程序:eg3_2.py增加热浪告警功能f=input(TemperatureindegreesFarenheit:)c=(f32)*5.0/9printTemperatureindegreesCelsius:,cifc35:printWarning:HeatWave!,LuChaojun,SJTU,14,LuChaojun,SJTU,14,14,编程实例,温度转换程序:eg3_3.py增加热浪和寒潮告警功能f=input(TemperatureindegreesFarenheit:)c=(f32)*5.0/9printTemperatureindegreesCelsius:,cifc=35:printWarning:HeatWave!ifc=35:printWarning:HeatWave!else:printWarning:ColdWave!,LuChaojun,SJTU,15,多路分支:嵌套if-else,if语句可以嵌套多重嵌套不好难读代码松散ifc=35:printWarning:HeatWave!else:ifc=35:printWarning:HeatWave!elifc=0:discRoot=math.sqrt(discrim)root1=(-b+discRoot)/(2*a)root2=(-b-discRoot)/(2*a)printThesolutionsare:,root1,root2else:printTheequationhasnorealroots!,LuChaojun,SJTU,22,提高健壮性:利用调用返回码,程序中调用其他代码(如函数),那些代码可利用返回值作为执行正常与否的标志码.调用者调用后通过检测返回值来判断是否正常例如,为了解决sqrt函数的问题,设计robustSqrt():defrobustSqrt(x):ifxa=Helloprinta5Traceback(mostrecentcalllast):File,line1,inIndexError:stringindexoutofrange,LuChaojun,SJTU,26,程序员自定义异常处理,Python提供try-except语句,可用来自定义异常处理代码.a=Hellotry:printa5exceptIndexError:printIndexwrong!Indexwrong!,LuChaojun,SJTU,27,异常处理机制的优点,既保持核心算法的清晰,又能提高程序的健壮性.,LuChaojun,SJTU,28,算法清晰但不健壮:doStep1()doStep2()doStep3(),健壮但算法不清晰:ifdoStep1()=ERROR:错误处理代码1elifdoStep2()=ERROR:错误处理代码2elifdoStep3()=ERROR:错误处理代码3,算法清晰且健壮:try:doStep1()doStep2()doStep3()exceptERROR:错误处理代码,异常处理语句,可以对不同类型的错误分别指定处理代码try:except:.except:except:,LuChaojun,SJTU,29,编程实例,解方程程序的改进:用异常处理语句来捕获math.sqrt的溢出错误.(eg3_7.py)importmathtry:a,b,c=input(Enter(a,b,c):)discRoot=math.sqrt(b*b-4*a*c)root1=(-b+discRoot)/(2*a)root2=(-b-discRoot)/(2*a)printThesolut
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年绥化市庆安县急需紧缺教师校园招聘36人模拟试卷附答案详解(完整版)
- 2025人民医院快速检测技能考核
- 2025大庆油田有限责任公司春季高校毕业生招聘50人考前自测高频考点模拟试题及答案详解(各地真题)
- 2025广东医科大学附属医院第二批住院医师规范化培训学员招生19人模拟试卷及答案详解(名师系列)
- 2025广东广州市横沥人力资源管理服务有限公司招聘服务外包人员1人考前自测高频考点模拟试题及完整答案详解1套
- 张家口市中医院巨大甲状腺肿手术关键技术考核
- 秦皇岛市人民医院护理教学方法运用考核
- 上海市人民医院放射治疗紧急情况应急预案笔试试题
- 沧州市中医院血管外科主治医师晋升考核
- 张家口市中医院护理管理质量管理考核
- 母婴分离护理常规
- 污泥池清理管理制度
- 秩序员休假管理制度
- 保护环境的课件
- 2025年中国张裕产区葡萄酒特色与品牌国际化发展报告
- 图深度强化学习在配电网故障恢复中的应用研究
- (2017)海南省房屋建筑与装饰装修工程综合定额交底资料
- 2024-2025学年下学期高一英语人教版同步经典题精练之语法填空
- 《社会科学研究方法》课件
- 提高市政雨水管道接口施工一次验收合格率
- 2025年有机化学实验模板
评论
0/150
提交评论