数据处理办法流程控制

上传人:ap****ve 文档编号:118714045 上传时间:2019-12-23 格式:PPT 页数:31 大小:1.52MB
返回 下载 相关 举报
数据处理办法流程控制_第1页
第1页 / 共31页
数据处理办法流程控制_第2页
第2页 / 共31页
数据处理办法流程控制_第3页
第3页 / 共31页
数据处理办法流程控制_第4页
第4页 / 共31页
数据处理办法流程控制_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《数据处理办法流程控制》由会员分享,可在线阅读,更多相关《数据处理办法流程控制(31页珍藏版)》请在金锄头文库上搜索。

1、数据处理的流程控制 分支控制结构 流程控制 数据是被加工处理的原材料,而处理过程要用流程控制 结构来描述 类类比:烹调调=食材+烹制过过程 烹制过过程:先炒再煮;如果淡了则则加盐盐;反复翻炒5分钟钟;. 常见的流程控制结构 顺顺序,跳转转,分支,循环环,子程序等 好的流程:结构清晰,易理解,易验证,易维护 2 2 3 3 3 顺序控制结构 按语句的自然先后顺序执行 4 4 4 编程实例 温度转换程序eg3_1.py :华氏转换成摄氏 流程图:用标准化的图形符号来表示程序步骤 流程图图中的步骤骤可以是不同抽象级级的 5 5 5 分支控制结构(1) 可以选择不同的执行路径 单分支结构 if : :

2、 布尔表达式 : 语语句序列. 左边边需要缩进缩进 一些空格. 语义:计算的真假.若为真,则执行,并把控制转向下一条语句;若为假,则直接 把控制转向下一条语句. 布尔表达式(1) 是一个布尔表达式. 结结果为为布尔值值True或False 简单布尔表达式: 关系运算: , != 数值值比较较 字符串比较较: 按字典序. 字符序由编码编码 (ASCII等)决定. 如:大写字母在小写字母前. 列表,元组组的比较较 6 6 字符串比较举例 x = a A x = a A x = aA Aa x = aa a x = a aa x = a a aa x = aa (3 2) and (2 1) Tru

3、e (3 2) and (2 3) False PQP and Q FFF FTF TFF TTT Lu Chaojun, SJTU 1010 or的定义 or表示“或者”: P or Q为假 iff P和Q都为假 真值值表见见右 与日常用语语中互斥的“或” 不同! 例 (3 2) or (3 (2 3) or (2 4) False PQP or Q FFF FTT TFT TTT 1111 not的定义 not表示“否定”: not P为真 iff P为假. 真值值表见见右 例 not 3 2 False not not 3 2 True Pnot P TF FT 布尔运算符的优先级 no

4、t最高, 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) 或者写成 (a = 11 or b = 11) and abs(a - b) = 2 13 编程实例 温度转换程序:eg3_2.py 增加热热浪告警功能 f = input(Temperature in degrees Farenheit:

5、 ) c = (f 32) * 5.0 / 9 print Temperature in degrees Celsius:,c if c 35: print Warning: Heat Wave! 14 1414 Lu Chaojun, SJTU 15 Lu Chaojun, SJTU 1515 编程实例 温度转换程序:eg3_3.py 增加热热浪和寒潮告警功能 f = input(Temperature in degrees Farenheit: ) c = (f 32) * 5.0 / 9 print Temperature in degrees Celsius:,c if c = 35:

6、 print Warning: Heat Wave! if c = 35: print Warning: Heat Wave! else: print Warning: Cold Wave! 16 多路分支:嵌套if-else if语句可以嵌套 多重嵌套不好 难读难读 代码码松散 if c = 35: print Warning: Heat Wave! else: if c = 35: print Warning: Heat Wave! elif c = 0: discRoot = math.sqrt(discrim) root1 = (-b + discRoot) / (2 * a) roo

7、t2 = (-b - discRoot) / (2 * a) print The solutions are:, root1, root2 else: print The equation has no real roots! 23 提高健壮性:利用函数返回码 函数中有检测代码,执行正常与否可利用返回值 作为标志码. 调用者无条件调用函数,并检测返回值. 例如,为为了解决sqrt函数的问题问题 ,设计设计 robustSqrt(): def robustSqrt(x): if x a = Hello print a5 Traceback (most recent call last): Fil

8、e , line 1, in IndexError: string index out of range 27 程序员自定义异常处理 Python提供try-except语句,可用来自定义异常处理代码. a = Hello try: print a5 except IndexError: print Index wrong! Index wrong! Lu Chaojun, SJTU 28 异常处理机制的优点 既保持核心算法的清晰,又能提高程序的健壮性. 29 算法清晰 但不健壮: doStep1() doStep2() doStep3() 健壮但算法不清晰: if doStep1() = E

9、RROR: 错误处理代码1 elif doStep2() = ERROR: 错误处理代码2 elif doStep3() = ERROR: 错误处理代码3 算法清晰且健壮: try: doStep1() doStep2() doStep3() except ERROR: 错误处理代码 编程实例 解方程程序的改进:用异常处理语句来捕获 math.sqrt的溢出错误.(eg3_7.py) import math try: 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) print The solutions are:, root1, root2 except ValueError: print The equation has no real roots! 更完善的版本:eg3_8.py End 31

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号