4.1 程序的三种基本结构
1984年,Pascal语言的发明人,瑞士计算机科学家尼古拉斯·沃斯荣获图灵奖,在发表获奖感言时,沃斯教授给出了一个著名的公式:
算法+数据结构=程序(Program)
此公式精确描述了程序这一基础性概念的本质,同时也告诉我们编写程序时必须考虑算法和数据结构两个方面的问题。
算法(Algorithm):广义上讲,是为解决某一问题而采取的一系列方法和步骤。在计算机科学中,算法被定义为是一组明确的、可以执行的步骤的有序集合,这说明算法中的步骤是确定性的、且存在执行的顺序。
数据结构(Data Structure):指明了程序表示、组织和存储数据的方式,良好的数据结构将使程序具有更高的运行和存储效率。
二者之中,算法是程序的灵魂,它决定了程序的执行流程。前面的程序中,语句总是按顺序自上而下逐条执行。但面对稍复杂一些的情况,仅靠顺序执行是无法完成任务的,必须引入更为复杂的流程控制方式。
1966年,Bohm和Jacopini证明,无论是多么复杂的算法和程序流程,都可以由三种基本结构,通过不同的组合加以实现。程序的三种基本结构是:顺序结构、分支结构(选择结构)、循环结构(重复结构)。
1、顺序结构
如下图所示,语句块A执行完后,顺序执行后面的语句块B。顺序结构是程序设计中最基本的结构,顺序结构的程序代码部分,将按照语句的先后顺序,自上而下依次执行
2、分支结构
也叫选择结构,如下图所示。程序语句在执行时,首先对情况(一般用关系表达式或逻辑表达式表示)进行判断,若表达式的值为True,则执行语句块,否则执行语句块B。也就是说,对于这种结构,程序运行时,只能根据情况选择其中一个分支来执行。
3、循环结构
也叫重复结构,程序语句在执行时,将根据情况的需要,反复执行语句块A,并在适当的时候结束循环。其中语句块A被称为循环体。算法中有两种形式的循环:当型循环和直到型循环。理论上,所有当型循环和直到型循环可以相互转换。
4.2 条件的表示
1、布尔值:True和False
程序中,无论是分支结构还是循环结构都需要对条件进行表示,并根据条件的测试结果决定程序的执行流程。编程语言中,用条件表达式来表示条件,Python有多种表示条件的方法,支持用关系(比较)运算符、逻辑(布尔)运算符、成员运算符、身份运算符等构建条件表达式。
条件表达式的值一般都是布尔值。布尔值是两个常量对象 True 和 False,表示逻辑上的“真”与“假”。
所有类型的数字0(整数类型、浮点类型等)、空序列(字符串、列表、元组)以及空字典、空集合、空对象的值为False,其它值为True。
在数值运算中, True和False 分别以整数值“1”和“0”参与运算。
内置函数bool() 可将任意可被解析为逻辑值的对象值转换为布尔值。
***Python中,由于bool类是继承自int类的类对象,所以有人喜欢将布尔值看做整数的子类型,也有人喜欢将其看做与整数并列的一种新数据类型——布尔类型。
2、关系运算符
3、关系运算符
4、逻辑运算符
5、身份运算符
6、成员运算符
4.3 单分支结构:if语句
Python用 if语句实现分支结构,根据关键字if后条件表达式的值是True还是False来选择要执行的代码。Python的分支结构又可进一步分成单分支结构、双分支结构和多分支结构三种。
单分支结构的执行流程是:当条件满足时,执行语句块;若条件不满足,语句块被跳过不执行。
4.4 双分支结构:if-else语句
双分支结构的执行流程是:当条件满足时,执行语句块A;若条件不满足时,执行语句块B。
4.5 多分支结构:if-elif-else语句
多分支结构的执行流程是:当条件1满足时,执行语句块A;当条件2满足时,执行语句块B;当条件3满足时,执行语句块C,……,当以上条件都不满足时,执行语句块D。
补充:条件表达式语句
条件表达式语句:Python中存在一种特殊的条件表达式语句,可以用一条语句完成一个简单的二分支结构(一般要求if子句控制的语句块A和else子句控制的语句块B均只含有一条语句)。
4.6 分支的嵌套结构
程序中,根据需要,在分支结构的某一分支中,可以继续包含另一个分支结构,从而形成分支的嵌套。例如,在if语句的if语句块和else语句块中,都可以继续包含if语句,如下图所示。
4.7 编码规范2:缩进
4.8 程序举例
示例1:求三个数中最大的数
问题:输入三个数,求其中最大的数并打印输出
示例2:求一元二次方程的根【嵌套分支实现】
问题:求一元二次方程的根。首先根据输入a的数值,区分当前输入的系数能否构成一元二次方程:(1)当a=0时,显示输入的系数构成的“不是一元二次方程”(2)若a≠0,需要对是否实根还是虚根的情况筛选:b2-4ac>=0,时,有两个实根;b2-4ac<0时,有两个虚根。
示例3:求一元二次方程的根【多分支结构实现】
示例4:个人所得税计算器