大家好,欢迎来到 Crossin的编程教室 !
与大多数编程语言一样,Python 代码是从上往下逐行运行。
但当程序稍稍复杂之后,单纯的线性执行就无法满足需要了。比如我们希望用户的输入满足某种条件时才进行响应,否则就不响应。这种情况下,就需要用到条件判断。
条件判断是程序控制流的一种。所谓控制流,就是指程序执行的路径控制,它决定了程序运行时的顺序和方式。除了条件判断,常见的控制流还有循环和函数调用等。
Python 的条件判断语句是 if 语句(“if”的英文原意是如果、假如),的它的基本语法是:
例如:
这短短的一段代码里,有不少值得注意的细节:
if 同所有的 Python 语法关键字一样是严格区分大小写的,if 二字必须全部小写英文字母。
判断条件可以是一个具体的值,也可以是变量、数学运算、比较运算等可被计算出结果的表达式,包括以后会讲到的函数调用,但不能是赋值语句。
判断条件之后有一个英文冒号(:)不要漏掉,也不要误写成中文全角的冒号。
条件满足所执行的代码行首需要有缩进,缩进多少没有硬性限制,但通常是 4 个空格(建议)或一个制表符(按下键盘上的 tab 键)。
条件满足所执行的代码可以是多行代码,被称为一个代码块。同级代码块需保持缩进一致。
那么,怎样才算做“条件满足”呢?
很简单,就是判断条件的结果为真。在 Python 中,等价于
所以,不管判断条件有多复杂,结果是什么类型,只要满足上面这个比较等式,就会执行其中的代码块。
这里有几个新手容易踩的坑:
在判断条件时把 == 写成了 =。两个等号(==)是判断左右两边的结果是否相等,结果是一个 bool 值;一个等号(=)则是变量赋值,不能作为 if 的条件。
用 == 判断浮点数的计算结果。比如 0.1 + 0.2 == 0.3,这个式子看起来没问题,但由于计算机中浮点数存在精度误差,无法做到绝对相等,所以这个式子的结果是 False。(没想到吧?)
对于0、空值等判断需要额外注意。0 和 None 转成 bool 类型都是 False,但 0 本身不是 None。
比如如下这个判断,如果 x 的值分别是 0、'0'、''、None,结果是不一样的:
想想看分别会输出什么?
关于 if 语句和条件判断还有不少细节,后续我们还会展开来细说。
领取专属 10元无门槛券
私享最新 技术干货