#PY小贴士# if 语句只能判断一个条件?

  • 2019 年 12 月 19 日
  • 笔记

一个起步期的常见坑:

想用 if 语句判断多个条件,为什么这样写没效果?

if a == 1 or 2 or 3:    ...

可能是觉得写 a == 1 or a == 2 or a == 3 太长了,见过不少人在一开始都会尝试这样“简写”。

可惜 or 的运算规则不是这样的。

在 Python 里,非零的数字转成 bool 值相当于 True,所以这个判断式子就相当于 a == 1 or True or True

这个式子无论 a 是多少,最后结果都是 True

还有人之前学过其他编程语言,所以会这么写:

if a == 1 || a == 2 || a == 3:    ...

发现语法报错,又会改成

if a == 1 | a == 2 | a == 3:    ...

这也是不对的。Python 没有 || 符号,| 是按位或操作。逻辑上的或操作就是 or

所以,老老实实地写:

if a == 1 or a == 2 or a == 3:    ...

或者:

if a in [1, 2, 3]:    ...