#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]: ...