购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4 条件语句

通过设置条件,可以使得某些语句在条件满足时才会执行。例如,如果一名学生某门课程的成绩小于60分,则输出“不及格”,否则不输出任何信息,那么可以按照图2-37a所示流程编写程序。当然,在实际使用中,我们希望能给及格的学生也反馈一些信息,所以可以按照图2-37b所示流程编写程序:当一名学生某门课程的成绩小于60分时,则输出“不及格”,否则输出“及格”。

图2-37 条件语句示例1

图2-37a和图2-37b所示的流程图也可以分别改成如代码清单2-21和代码清单2-22所示的伪代码来描述。

表1-2 Python部分版本的信息

表1-2 Python部分版本的信息

接下来考虑更复杂的情况,进一步将大于或等于60分的学生成绩分为优秀(90~100分)、良好(80~89分)、中等(70~79分)和及格(60~69分)。此时,按照图2-38所示的流程进行程序编写。

图2-38 条件语句示例2

图2-38所示的流程图也可以改成如代码清单2-23所示的伪代码来描述。

表1-2 Python部分版本的信息

提示

1.在解决一个实际问题时,可以先使用流程图、自然语言或伪代码等形式描述数据处理流程(即算法设计),再按照设计好的流程编写程序(即算法实现)。这样,在设计算法时可以忽略具体代码实现,而专注于如何解决问题,有利于避免程序的逻辑错误。

2.在绘制流程图时,要求必须从“开始”出发,经过任何处理后必然能到达“结束”。另外,对于流程图中使用的图形符号有着严格规定,“开始”和“结束”一般放在圆角矩形或圆中,数据处理放在矩形框中,而条件判断放在菱形框中。

3.代码清单2-23的第4行代码“否则,如果score小于70”中,虽然没有写“score大于或等于60”,但因为第2行代码“如果score小于60”不成立,才执行第4行代码的判断,所以在执行第4行代码时score必然是大于或等于60的。第6、8、10行代码的判断也类似。在编写程序时,应尽量减少冗余的判断,以尽可能提高程序执行效率。

【思考题2-32】 在绘制流程图时,条件判断应放在( )中。

A.圆角矩形

B.圆

C.矩形框

D.菱形框

【思考题2-33】 在绘制流程图时,只有( )后面允许有多个分支。

A.圆角矩形

B.圆

C.矩形框

D.菱形框

【思考题2-34】 伪代码是否必须符合Python语言的语法要求?

2.4.1 if、elif、else

在理解了条件语句的作用后,下面来看一下如何使用Python语言实现条件语句。条件语句的语法格式如下:

其中,if表示“如果”,elif表示“否则如果”,else表示“否则”。最简单的条件语句只有if,elif和else都是可选项,根据需要决定是否使用。

下面给出代码清单2-21、代码清单2-22和代码清单2-23中的伪代码对应的Python语言编程实现。

表1-2 Python部分版本的信息

表1-2 Python部分版本的信息

表1-2 Python部分版本的信息

代码清单2-24、代码清单2-25和代码清单2-26的运行结果示例分别如图2-39、图2-40和图2-41所示。

图2-39 代码清单2-24的运行结果

图2-40 代码清单2-25的运行结果

图2-41 代码清单2-26的运行结果

提示 每一个语句序列中可以包含一条或多条语句。例如,将代码清单2-24改写为

则第3行和第4行代码都是只有在score<60这个条件成立时才执行,如图2-42所示。

这里需要注意if语句序列中的这两条语句需要有同样的缩进,如果误写为

则无论score<60这个条件是否成立,第4行代码都会被执行,如图2-43所示。

图2-42 if语句序列中包含多条语句的程序运行结果示例

图2-43 错误缩进方式下的程序运行结果示例

【思考题2-35】 下面程序的输出结果是( )。

A.成绩为80不及格

B.成绩为80

C.不及格

D.无输出

【编程练习2-1】 下面程序的功能是将输入数据取绝对值并输出。请改正下面程序中存在的错误。

【编程练习2-2】 编写程序实现以下功能:输入一个年份,判断该年份是否是闰年,并将判断结果输出(是闰年则输出yes,否则输出no)。

【编程练习2-3】 编写程序实现以下功能:输入一个数值x,如果x在区间(1, 2]上,则输出x+2.5的值;如果x在区间[-1, 1]上,则输出4.35x的值;如果x在区间[-2,-1)上,则输出x的值;如果x为其他值,则输出invalid。

2.4.2 pass

pass表示一个空操作,只起到一个占位作用,执行时什么都不做。例如,可以将代码清单2-24改为代码清单2-27的写法。

表1-2 Python部分版本的信息

代码清单2-27执行完毕后,对于相同的输入,其输出结果与代码清单2-24的输出结果完全相同,如图2-44所示。

图2-44 代码清单2-27的运行结果

提示

1.在某些必要的语句(如条件语句中的各语句序列)还没有编写的情况下,如果要运行程序,则可以先在这些必要语句处写上“pass”,使得程序不存在语法错误,能够正常运行。

2.实际上,pass与条件语句并没有直接关系,在程序中所有需要的地方都可以使用pass作为占位符。比如,在后面将要学习的循环语句中,也可以使用pass作为占位符。

【思考题2-36】 下面程序的输出结果是( )。

A.不及格

B.pass

C.报错

D.无输出 ncqPe7gnm8MrbQw5JRYkvrjoI8RX+uhaJGW4oDFRuMAqO/RHg+PoEZvyDbD+6INM

点击中间区域
呼出菜单
上一章
目录
下一章
×