大家好,欢迎来到 Crossin的编程教室 !
之前我们已经了解了如何在 Python 中进行条件判断(《是真是假?》),以及根据判断的结果执行不同的代码(《假如……》)。
不过之前遇到的例子都是单个条件。如果需要对多个条件同时进行判断,比如判断一个人「既会唱跳又会打篮球」,那就需要用到「逻辑运算符」。
Python 中有 3 个基本的逻辑运算符,用来进行 bool 值的计算,分别是 and、or、not。
逻辑运算符的运算规律可以用以下的「真值表」进行表示。
and | 结果 |
---|---|
True and False | False |
True and True | True |
False and True | False |
False and False | False |
and 表示「逻辑与」,可以理解为我们平常说的「并且」:
代码语言:javascript复制会唱跳 and 会打篮球
就是指「是否满足 会唱跳 并且 会打篮球」,也就是判断一个人是不是这两样都会。
and 两边的条件均为 True,结果才为 True;否则为 False。
or | 结果 |
---|---|
True or False | True |
True or True | True |
False or True | True |
False or False | False |
or 表示「逻辑或」,也就是我们平常说的「或者」:
代码语言:javascript复制会唱跳 or 会打篮球
就是指「是否满足 会唱跳 或者 会打篮球」,也就是判断一个人是不是至少会其中一样。
or 两边的条件至少有一个为 True,结果即为 True;均为 False 结果才为 False。
not | 结果 |
---|---|
not False | True |
not True | False |
而 not 就是「不」的意思,表示「逻辑非」:
代码语言:javascript复制not 会唱跳
就是「是否满足 不会唱跳」。
代码语言:javascript复制not 会打篮球
就是「是否满足 不会打篮球」。
学过 C 或 Java 的同学一定知道 && 和 || 这两个运算符分别表示逻辑与和逻辑或。在 Python 中也有 & 和 | 这两个类似的运算符,且一样可以执行。但可惜这两个符号的含义另有所指,表示的是「按位与」和「按位或」,也就是把两个数字按照转成二进制后的每一位进行与/或操作得到的结果。例如:
代码语言:javascript复制a = 3 # 00000011
b = 5 # 00000101
print(a & b) # 00000001
print(a | b) # 00000111
输出:
代码语言:javascript复制1
7
最后,给大家留一个简单的思考题:
如果要表示一个人「不会唱跳和打篮球」,应该怎么写?给大家几个选项,哪个写法是对的?
- not 会唱跳 and 会打篮球
- not (会唱跳 and 会打篮球)
- not (会唱跳 or 会打篮球)
- not 会唱跳 and not 会打篮球