数据处理办法流程控制_第1页
数据处理办法流程控制_第2页
数据处理办法流程控制_第3页
数据处理办法流程控制_第4页
数据处理办法流程控制_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、数据处理办法流程控制流程控制流程控制数据是被加工处理的原材料数据是被加工处理的原材料,而处理过程要用流而处理过程要用流程控制结构来描述程控制结构来描述类比类比:烹调烹调=食材食材+烹制过程烹制过程烹制过程烹制过程:先炒再煮先炒再煮;如果淡了则加盐如果淡了则加盐;反复翻炒反复翻炒5分分钟钟;.常见的流程控制结构常见的流程控制结构顺序顺序,跳转跳转,分支分支,循环循环,好的流程好的流程:结构清晰结构清晰,2 23 3 3顺序控制结构顺序控制结构按语句的自然先后顺序执行按语句的自然先后顺序执行4 4 4编程实例编程实例温度转换程序温度转换程序 :华氏转换成摄氏华氏转换成摄氏流程图流程图:用标准化的图

2、形符号来表示程序步骤用标准化的图形符号来表示程序步骤流程图中的步骤可以是不同抽象级的流程图中的步骤可以是不同抽象级的5 5 5分支控制结构分支控制结构(1)可以选择不同的执行路径可以选择不同的执行路径单分支结构单分支结构if : : 布尔表达式布尔表达式: 语句序列语句序列.左边需要左边需要缩进缩进一些空格一些空格.语义语义:计算计算的真假的真假.若为真若为真,则执行则执行,并把控制转向下一条语句并把控制转向下一条语句;若为假若为假,则直接则直接把控制转向下一条语句把控制转向下一条语句.数据处理办法流程控制6布尔表达式布尔表达式(1)是一个布尔表达式是一个布尔表达式.结果为布尔值结果为布尔值T

3、rue或或False简单布尔表达式简单布尔表达式: 关系运算关系运算: , =, , !=数值比较数值比较字符串比较字符串比较: 按字典序按字典序.字符序由编码字符序由编码(ASCII等等)决定决定. 如如:大写字母在小写字母大写字母在小写字母前前.列表列表,元组的比较元组的比较6字符串比较举例x = a Ax = a Ax = aA Aax = aa ax = a aax = a a aax = aa a a布尔表达式布尔表达式(2)复杂布尔表达式复杂布尔表达式:布尔运算布尔运算:and, or, not and or not 89 9and的定义的定义and表示表示“并且并且”: P an

4、d Q为真为真 iff P和和Q都为真都为真真值表见右真值表见右例例 (3 2) and (2 1)True (3 2) and (2 3)False PQP and QFFFFTFTFFTTTLu Chaojun, SJTU 1010or的定义的定义or表示表示“或者或者”: P or Q为假为假 iff P和和Q都为假都为假真值表见右真值表见右与日常用语中互斥的与日常用语中互斥的“或或”不同不同!例例 (3 2) or (3 (2 3) or (2 4)False PQP or QFFFFTTTFTTTT1111not的定义的定义not表示表示“否定否定”:not P为真为真 iff P为

5、假为假.真值表见右真值表见右例例 not 3 2False not not 3 2TruePnot PTFFT布尔运算符的优先级布尔运算符的优先级not最高最高, and次之次之, or最低最低Q: a or not b and c何意何意?A: a or (not b) and c)最好使用括号最好使用括号!12例例:一局乒乓球比赛的结束一局乒乓球比赛的结束双方任何人先得双方任何人先得11分分a = 11 or b = 11更准确的更准确的:一方至少要多一方至少要多2分才胜分才胜(a = 11 and a - b = 2) or (b = 11 and b - a = 2)或者写成或者写成(

6、a = 11 or b = 11) and abs(a - b) = 213数据处理办法流程控制14编程实例编程实例温度转换程序温度转换程序增加热浪告警功能增加热浪告警功能f = input(Temperature in degrees Farenheit: )c = (f 32) * 5.0 / 9print Temperature in degrees Celsius:,cif c 35: print Warning: Heat Wave! 1414Lu Chaojun, SJTU 15Lu Chaojun, SJTU 1515编程实例编程实例温度转换程序温度转换程序增加热浪和寒潮告警功能

7、增加热浪和寒潮告警功能f = input(Temperature in degrees Farenheit: )c = (f 32) * 5.0 / 9print Temperature in degrees Celsius:,cif c = 35: print Warning: Heat Wave!if c = -6: print Warning: Cold Wave! 数据处理办法流程控制16两路分支结构两路分支结构语法语法if : else: if和和else是非此即彼的关系是非此即彼的关系.下列语句对吗下列语句对吗?if c = 35: print Warning: Heat Wave

8、!else: print Warning: Cold Wave! 数据处理办法流程控制17多路分支多路分支:嵌套嵌套if-elseif语句可以嵌套语句可以嵌套多重嵌套不好多重嵌套不好难读难读代码松散代码松散if c = 35: print Warning: Heat Wave!else: if c = -6: print Warning: Cold Wave! else: print Have fun!多路分支多路分支:if-elif-else结构结构语法语法if : elif : .elif else 语义语义:找到第一个为真的条件并执行对应语句找到第一个为真的条件并执行对应语句序列序列,控

9、制转向下一条语句控制转向下一条语句;若无若无,则执行则执行else下下的语句序列的语句序列,控制转向下一条语句控制转向下一条语句.18数据处理办法流程控制19编程实例编程实例温度转换程序温度转换程序f = input(Temperature in degrees Farenheit: )c = (f - 32) * 5.0 / 9print Temperature in degrees Celsius:, cif c = 35: print Warning: Heat Wave!elif c = 0: discRoot = math.sqrt(discrim) root1 = (-b + di

10、scRoot) / (2 * a) root2 = (-b - discRoot) / (2 * a) print The solutions are:, root1, root2else: print The equation has no real roots! 23数据处理办法流程控制24提高健壮性提高健壮性:利用函数返回码利用函数返回码函数中有检测代码函数中有检测代码,执行正常与否可利用返回值执行正常与否可利用返回值作为标志码作为标志码.调用者无条件调用函数调用者无条件调用函数,并检测返回值并检测返回值.例如例如,为了解决为了解决sqrt函数的问题函数的问题,设计设计robustSqr

11、t():def robustSqrt(x): if x 0: return -1 else: return math.sqrt(x)则程序中可以这样检测则程序中可以这样检测if robustSqrt(b*b 4*a*c) a = Hello print a5Traceback (most recent call last): File , line 1, in IndexError: string index out of range 程序员自定义异常处理程序员自定义异常处理 Python提供提供try-except语句语句,可用来自定义异常处理代码可用来自定义异常处理代码. a = Hell

12、o try: print a5 except IndexError: print Index wrong!Index wrong! Lu Chaojun, SJTU 28异常处理机制的优点异常处理机制的优点既保持核心算法的清晰既保持核心算法的清晰,又能提高程序的健壮性又能提高程序的健壮性.29算法清晰算法清晰但不健壮但不健壮:doStep1()doStep2()doStep3()健壮但算法不清晰健壮但算法不清晰:if doStep1() = ERROR: 错误处理代码错误处理代码1elif doStep2() = ERROR: 错误处理代码错误处理代码2elif doStep3() = ERROR: 错误处理代码错误处理代码3 算法清晰且健壮算法清晰且健壮:try: doStep1() doStep2() doStep3()except ERROR: 错误处理代码错误处理代码编程实例编程实例解方程程序的改进解方程程序的改进:用异常处理语句来捕获的溢用异常处理语句来捕获的溢出错误出错误.(eg3_7.py)import mathtry: a, b, c = input(Enter (a, b, c): ) discRoot = math

温馨提示

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

最新文档

评论

0/150

提交评论