Python入门 | 如何判断多个条件

2023-09-12 18:55:26 浏览数 (1)

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

之前我们已经了解了如何在 Python 中进行条件判断(《是真是假?》),以及根据判断的结果执行不同的代码(《假如……》)。

不过之前遇到的例子都是单个条件。如果需要对多个条件同时进行判断,比如判断一个人「既会唱跳又会打篮球」,那就需要用到「逻辑运算符」。

Python 中有 3 个基本的逻辑运算符,用来进行 bool 值的计算,分别是 andornot

逻辑运算符的运算规律可以用以下的「真值表」进行表示。

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

最后,给大家留一个简单的思考题:

如果要表示一个人「不会唱跳和打篮球」,应该怎么写?给大家几个选项,哪个写法是对的?

  1. not 会唱跳 and 会打篮球
  2. not (会唱跳 and 会打篮球)
  3. not (会唱跳 or 会打篮球)
  4. not 会唱跳 and not 会打篮球

0 人点赞