前面我们讲过,含有关系运算符的表达式称为关系表达式,关系表达式一般用于条件判断。那么,什么是条件判断呢?
认识条件结构
在生活中,我们常常会遇到许多需要判断的情况。在这种情况下,需要根据一些条件作出决定和选择。例如,在我们打算出门时,需要判断天气怎么样,如果下雨了,就要带上雨伞;外出旅行时,需要根据不同情况,选择不同的交通工具。

前面我们编写的程序都是“顺序流程”,每条Python语句按顺序执行。但是在很多情况下,程序并不是按既定的顺序执行,而是根据不同情况进行判断,然后执行不同的操作,这种流程成为“条件分支流程”,其结构也称为“条件结构”。

顺序结构是按语句编写顺序来逐条执行;条件结构的核心是条件判断,条件判断是一个表达式,表达式的运算结果是逻辑值真(True)或假(False)。当返回结果是True时,执行分支语句块A;当返回结果是False时,执行分支语句块B。
语句块是指由一条或多条语句组成的代码。
如果表达式返回的是数值,Python规定数值非0为真值,否则为假值。如果表达式返回的是一个对象,对象非空为真值,否则为假值,在Python中,空值用None关键字表示。
同顺序结构相比,条件结构是根据条件判断情况有选择地执行语句,并不是执行全部语句。Python条件结构语法如下图所示:

IF和ELSE是条件结构的关键字,IF和ELSE也可以全部小写。在IF关键字后面是表达式,表达式与IF关键字间用一个或多个英文空格隔开,表达式后面的是“:”符号,表达式和“:”符号之间没有空格。
如果表达式运算结果的值为真(True),则执行IF下面的分支语句A;如果表达式运算结果的值为假(False),则不执行IF下面的分支语句块A,而执行ELSE下面的分支语句块B。
单个的变量、逻辑值、数值也是表达式。Python规定,当表达式需要返回逻辑值时,非0的数值为真值,0值为假值。
上面的条件结构也称为if-else结构,包含if关键字的语句称为if语句,包含else关键字的语句称为else语句,分支语句A属于if语句范围内,分支语句B属于else语句范围内。

在一些情况下,可能只需要执行条件满足下的分支语句A,并不需要执行条件不满足下的分支语句B。在这种情况下,分支语句B就可以省略。

分支语句块A或分支语句块B由一条或多条Python语句组成,在Python语言中,Python代码使用缩进对齐来表示代码逻辑。缩进就是不同层次语句通过缩进的空格数量来区分,对齐就是同一层次的语句要对齐,即每条语句缩进的空格数量要相同。

案例1的代码结构被分为两个层次,注释语句除外,第02、03、06、08行语句为第一层次,第07、09行语句为第二层次。层次的划分通过缩进英文空格来实现,缩进空格可以使用Tab键,也可以直接输入空格,缩进建议为四个空格。

现在,我们已经了解了Python语言的简单条件结构的使用,下面探讨一下如何在条件结构中使用关系表达式。
例如:要测试两个整数类型的变量值num1和num2是否相等,可以编写num1 == num2,然后将其放入一个IF语句中,如下所示:

如果num1和num2的数值相等,则条件为真,执行IF后面的分支语句,否则条件为假,执行ELSE后面的分支语句。
条件判断案例程序

问题分析:使用input函数获取用户输入的两个数值,分别赋值给num1和num2两个变量,计算num1和num2的和,并赋值给sum变量。最后通过if语句判断sum大于等于100是否成立,如果条件成立,程序输出“两数和大于等于100”。如果为假,程序输出“两数和小于100”。
程序流程图:

案例程序代码及解读
有了流程图,可以开始编写代码了。启动Python IDLE,在IDLE的Shell窗口新建一个代码文件,在新建的代码编辑窗口编写代码。

代码编写完成,保存到D盘的Python目录或其它目录,保存的文件名称是sum.py。

第04、05、06、07条语句是条件结构,04条语句是条件结构的开始语句,也是条件判断语句,条件判断语句由if关键字和关系表达式组成,如果关系表达式运算结果是True,执行后面的05条语句,否则执行else关键字后面的07条语句。

内容小结
条件结构是编写程序经常使用的一种结构,因为程序是用来解决现实问题的,现实问题总会有这样或那样的情况,当出现不同情况时,就要做不同的处理。
在这种情况下,就要用到条件结构了,使用条件结构可以针对不同情况编写不同的问题处理代码。最简单的条件结构是if-else结构,if语句的控制过程是满足条件就执行if内的分支语句,否则就执行else内的分支语句。在一些情况下,else语句可以省略。
上机操作
编写一个程序,要求用户输入一个整数,判断该数是奇数还是偶数。
提示:
能被2整除的整数为偶数,即该数除以2后余数为0,否则该数为奇数。因此可以采用取余运算判断数的奇偶性。考虑使用if-else结构,如果if中的条件num % 2 ==0为真,则输出该数是一个偶数,如果为假,则输出该数是一个奇数。