
在Python中,选择(条件)语句可细分为3 种形式,分别是 if 语句、if else 语句和 if elif else 语句。
以上3种形式中,第二种形式和第三种形式是相通的,如果第三种形式中的 elif 块不出现,则变成了第二种形式。另外,elif 和 else 必须和 if 一起使用,不能单独使用。
从前面的示例可以看出,Python 执行 if 语句时,会判断 if 表达式的值是 True 还是 False。那么,是不是只能使用我们之前讲到的 bool 类型的表达式呢?并不是。表达式可以是任意类型,当下面的值作为 bool 表达式时,会被解释器当作 False 处理:
False、None、0、""、()、[]、{}
代码块一定要缩进,否则就不是代码块。
需要说明的是,虽然 Python 语法允许代码块随意缩进N个空格,但同一个代码块内的代码必须保持相同的缩进,不能一会缩进 2 个空格,一会缩进 4 个空格。
从 Python 语法解释器的角度来看,Python 冒号精确表示代码块的开始点,不仅在条件执行体中如此,后面的循环体、方法体、类体全部遵循该规则。
Python中,if、if else 和 if elif else 之间可以相互嵌套。因此,在开发程序时,需要根据场景需要,选择合适的嵌套方案。需要注意的是,在相互嵌套时,一定要严格遵守不同级别代码块的缩进规范。
很多程序都提供了“空语句”支持,Python也不例外,Python 的 pass 语句就是空语句。有时候程序需要占一个位、放一条语句,但又不希望这条语句做任何事情,此时就可通过 pass 语句来实现。通过使用 pass 语句,可以让程序更完整。
assert 断言语句和 if 分支有点类似,它用于对一个 bool 表达式进行断言,如果该 bool 表达式为 True,则该程序可以继续向下执行,否则程序会引发 AssertionError 错误。虽然 assert 会令程序崩溃,但是我们依然要使用它。因为与其让程序在晚些时候崩溃,还不如在错误条件出现时就崩溃。