Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。可以通过下图来简单了解条件语句的执行过程。
Python中的条件语句包括if、elif、else语句,用来控制程序的执行,当判断条件为真时,执行该语句下的执行体,判断条件为假时,跳过该语句。具体语法如下:
格式1:
if 判断条件:
执行语句……
当判断条件为真(值为True)时,执行该条件下的执行语句;否则,不执行该条件下的语句。以下面代码为例:
代码:
结果:
上述代码的执行结果为True。由于a的值为‘a’,在执行第一个判断条件时,满足a=’a’,因此执行该条件下的语句,打印出结果True。
格式2:
if 判断条件:
执行语句……
else:
执行语句……
当判断条件为真(值为True)时,执行该条件下的执行语句;否则,执行else下的语句。需要注意的是,Python中以缩进来确定一个代码块。以下面代码为例:
代码:
结果:
上述代码的执行结果为True。由于a的值为1,在执行第一个判断条件时,满足a>0,因此执行该条件下的语句,打印出结果True。由于已经第一个判断条件已经满足,程序不再检查其他的判断条件。对上面代码稍作改动,具体见下:
代码:
结果:
上述代码的执行结果为False。由于a的值为0,在执行第一个判断条件时,不满足a>0,因此跳过该执行语句,执行else语句下的执行体,打印结果为False。
格式3:
if 判断条件:
执行语句……
elif 判断条件:
执行语句……
elif 判断条件:
执行语句……
else:
执行语句……
当判断条件为多个值时,可以使用上述形式。
Python条件语句具有以下几个特点
1、 如果判断条件有多个时,可以使用and/or连接。
2、 当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,
此外 and 和 or 的优先级低于>(大于)、 <(小于)等判断符号,即大于和小于在没有括号的情况下会比and/or要优先判断。
代码:
结果:
3、 Python 复合布尔表达式计算采用短路规则,即如果通过前面的部分已经计算出整个表达式的值,则后面的部分不再计算。见下面例子:
代码:
结果:
程序在运行过程中判断到a>0为False时,由于False与任何布尔类型的值进行“与”运算的结果均为False,所以程序就不再判断表达式(b/a>2)的值,最终打印出结果“no”。但是,这段代码实际上是有错误的,因为0不能做除数,而在表达式(b/a>2)中,0做了除数。由于Python的这一特点,所以程序在运行的时候并没有报零除错误。我们将上述代码稍作修改,如下所示:
代码:
结果:
我们将代码中的“and”改成了“or”,此时由于表达式(a>0)的值为False,所以程序继续计算表达式(b/a>2)的值,此时程序检查到除数为0,所以程序运行时报错。
4、 在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中。