《计算思维导论:程序设计思想与方法》——第3章:数据处理的流程控制

** 结构化程序设计方法的基本思想是只用顺序、条件分支和循环三种控制结构来编制程序,并使整个程序由具有唯一入口和唯一出口的语句块相互串联、嵌套而成。这样的结构具有结构清晰、易理解、易验证和易维护等优点。**

3.1 顺序控制结构
  1. 程序中执行点的变迁称为控制流程,当执行到程序中的某一条语句时,也说控制转到了该语句。
  2. 程序的控制流程可以用流程图来形象地表示。流程图采用标准化地图形符号来描述程序的执行步骤,是一种常用的程序设计工具。
  3. 顺序控制结构时最简单、最普遍的控制结构,计算机执行程序时的缺省控制流就是语句的自然排列顺序。
3.2 分支控制结构
  1. 编程语言中提供了根据条件来选择执行路径的控制结构,称为分支控制结构,也称为条件或判断结构。
3.2.1 单分支结构

在这里插入图片描述

3.2.2 两路分支结构

在这里插入图片描述

3.2.3 多路分支结构

在这里插入图片描述
Python中有一个更好的做法来写多路分支的条件判断,即if-elif-else语句。
在这里插入图片描述

3.3 异常处理
3.3.1 传统的错误检测方法
  1. 传统编程方法中常利用if语句来检测可能导致异常发生的条件,以期发现并处理错误。具体的检测方式有两种,一种是在执行任务之前检测条件,另一种是执行任务之后检测返回状态码或错误码。
3.3.2 传统错误检测方法的缺点
  1. 由于需要检测错误的地方非常多,最终导致程序中充斥着大量的错误检测代码,这些“喧宾夺主”的代码使得程序控制结构复杂,程序逻辑难以理解,代码也难维护。
3.3.3 异常处理机制
  1. 异常处理机制的基本思想是:程序运行时如果发生错误,就“抛出”一个异常,而系统能够“捕获”这个异常并执行特定的异常处理代码。
    在这里插入图片描述
  2. 在Python中,异常处理是通过一种特殊的控制结构来实现的,即try-except结构。
    在这里插入图片描述
    其语义是:执行<语句块>,如果一切正常,执行结束后控制转向try-except的下一条语句;如果执行过程中发生了异常,则控制转向异常处理语句块,执行结束后控制转向try-except的下一条语句。
  • 缺省异常处理
  • 程序自己处理异常
    Python的缺省异常处理使应用程序中止,控制转给Python解释器。如果应用程序需要在发生异常的情况下仍能正常结束,就需要使用try-except语句来增自己捕获并处理异常。
  • 异常处理机制的优点
    相对于错误检测代码,使用异常处理机制可以使程序的核心算法代码与错误处理代码相互分离,从而保持程序结构的清晰。
  • 分类处理异常
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
3.4 循环控制结构
  1. 在编程语言总,构成循环的这组语句的连续执行的次数一般有三种方式指定:第一,直接指定循环次数;第二,遍历一个数据集合,从而间接指定循环次数(集合有多少成员就循环多少次);第三,指定一个条件,当条件满足时循环或循环执行到条件满足为止。
3.4.1 for循环
  • 计数器循环
  • 遍历数据项列表
  • 遍历列表的同时修改列表
  • 遍历其他序列类型
  1. 用于for循环时,元组和列表具有完全一样的作用。
3.4.2 while循环
  • 交互式循环
    在这里插入图片描述
  • 哨兵循环
    在这里插入图片描述
  • 后测试循环
    在这里插入图片描述
  • while计数器循环
3.4.3 循环的非正常中断
  • break语句
    for或while语句的循环体中可以使用break语句,其效果是终止本次循环,并将控制跳出循环语句,转到循环语句的下一条语句。
  • continue语句
    continue语句的作用是终止本次循环,并将控制转到循环语句的开始处,“继续”执行下一条循环。
3.4.4 嵌套循环
3.5 结构化程序设计
3.5.1 程序开发过程
  1. 软件工程将软件系统的开发过程划分为前后相继的若干个阶段,称为系统开发生命周期(SDLC),开发人员必须严格遵循SDLC来开发软件系统。SDLC包括分析当前系统、定义新系统的需求、设计新系统、开发新系统、实现新系统和评估新系统等阶段。
  2. 开发新系统阶段的任务大体上就是程序设计,它本身又可划分为几个步骤,构成程序开发周期(PDC)。PDC的各个步骤如下:
  • 明确需求:明确问题是什么,理解用户在功能方面的要求。
  • 制定程序规格:描述程序要“做什么”。
  • 设计程序逻辑:设计程序的解题过程,即描述“怎么做”。
  • 实现:使用一种编程语言来实现设计,即编写程序代码。
  • 测试与排错:用样本数据执行程序,测试结果是否与预期吻合。如果发现有错误(行话称为bug)则排除错误(debug)。
  • 维护程序:根据用户需求持续开发、改进程序。
  1. 设计程序逻辑是核心步骤,其主要任务是设计出满足程序规格的算法。在设计阶段,常用两个工具:程序流程图和伪代码。
  2. 文档化工作不仅指PDC各个阶段的成果要体现在各种文档中(如设计文档、用户手册、联机帮助等),还包括程序代码中的各种文档化手段(如程序注释)。
3.5.2 结构化程序设计的基本内容
  1. 程序设计是一门可用给予科学解释的学问,可用建立良好的设计方法来指导程序员进行程序设计。
  2. 结构化程序设计(structured programming,简称SP)的基本思想是要确保程序具有良好的结构,使程序易理解、易验证和易维护。SP的原则:
  • 只用三种基本控制结构:顺序、条件分支、循环。
  • goto语句是有害的:goto程序一定可用转化为只包含顺序、条件分支和循环结构的程序。
  • 单入口单出口的程序块
    在这里插入图片描述
  1. 结构化程序设计的原则就是利用“单入口单出口”的程序块进行串联、嵌套,最终搭建出复杂程序,这使得程序的结构清晰、层次分明、易理解、易维护。
3.6 编程案例:如何求n个大数据的最大值?
3.6.1 几种解题策略
  • 策略1:将每个数值与其他两个数值进行比较
  • 策略2:判断树
    在这里插入图片描述
  • 策略3:顺序处理
  • 策略4:利用现成代码
3.6.2 经验总结

程序设计的首要任务是要找到正确的算法,然后就应当去追求清晰的程序结构、代码的执行效率、功能的可扩展性、良好的风格等目标。

3.7 Python布尔表达式用作控制结构
3.8 练习

书籍下载地址:https://download.csdn.net/download/qq_37590544/10959608

猜你喜欢

转载自blog.csdn.net/qq_37590544/article/details/87628237