假如……

2023-08-29 15:26:09 浏览数 (1)

大家好,欢迎来到 Crossin的编程教室 !

与大多数编程语言一样,Python 代码是从上往下逐行运行。

但当程序稍稍复杂之后,单纯的线性执行就无法满足需要了。比如我们希望用户的输入满足某种条件时才进行响应,否则就不响应。这种情况下,就需要用到条件判断。

条件判断是程序控制流的一种。所谓控制流,就是指程序执行的路径控制,它决定了程序运行时的顺序和方式。除了条件判断,常见的控制流还有循环和函数调用等。

Python 的条件判断语句是 if 语句(“if”的英文原意是如果、假如),的它的基本语法是:

代码语言:javascript复制
if 判断条件:
    条件满足时的执行代码

例如:

代码语言:javascript复制
name = input('叫啥名儿啊?')
if name == '小白':
    print('身份验证成功!')
    print('欢迎', name)

这短短的一段代码里,有不少值得注意的细节:

  1. if 同所有的 Python 语法关键字一样是严格区分大小写的,if 二字必须全部小写英文字母。
  2. 判断条件可以是一个具体的值,也可以是变量、数学运算、比较运算等可被计算出结果的表达式,包括以后会讲到的函数调用,但不能是赋值语句。
  3. 判断条件之后有一个英文冒号(:)不要漏掉,也不要误写成中文全角的冒号。
  4. 条件满足所执行的代码行首需要有缩进,缩进多少没有硬性限制,但通常是 4 个空格(建议)或一个制表符(按下键盘上的 tab 键)。
  5. 条件满足所执行的代码可以是多行代码,被称为一个代码块。同级代码块需保持缩进一致。

那么,怎样才算做“条件满足”呢?

很简单,就是判断条件的结果为真。在 Python 中,等价于

代码语言:javascript复制
bool(判断条件) == True

所以,不管判断条件有多复杂,结果是什么类型,只要满足上面这个比较等式,就会执行其中的代码块。

这里有几个新手容易踩的坑:

  1. 在判断条件时把 == 写成了 =。两个等号(==)是判断左右两边的结果是否相等,结果是一个 bool 值;一个等号(=)则是变量赋值,不能作为 if 的条件。
  2. 用 == 判断浮点数的计算结果。比如 0.1 0.2 == 0.3,这个式子看起来没问题,但由于计算机中浮点数存在精度误差,无法做到绝对相等,所以这个式子的结果是 False。(没想到吧?)
  3. 对于0、空值等判断需要额外注意。0 和 None 转成 bool 类型都是 False,但 0 本身不是 None。

比如如下这个判断,如果 x 的值分别是 0、'0'、''、None,结果是不一样的:

代码语言:javascript复制
if x == 0:
    print('x 为 0')
if x is not None:
    print('x 不是 None')
if x:
    print('x 非空')

想想看分别会输出什么?

关于 if 语句和条件判断还有不少细节,后续我们还会展开来细说。

对于 Python 中的 if 条件判断,你还有什么想了解的内容?欢迎在留言区讨论。

_往期文章推荐_

这些数学运算符号你都见过吗?

0 人点赞