2.1 关系与逻辑运算符
程序不只是按顺序执行语句。很多时候,它需要先判断某个条件(condition)的结果是否为 True,再决定下一步要做什么。条件判断的结果通常是布尔值(Boolean value):True 或 False。
关系运算符
关系运算符(relational operator)用于比较两个值。比较结果不是数字本身,而是一个布尔值。
Python 中常见的关系运算符包括:
<:小于>:大于<=:小于等于>=:大于等于==:等于!=:不等于
注意
一个等号
= 是赋值(assignment),两个等号 == 才是比较(comparison)。python
age = 17
print(age < 18) # True
print(age == 18) # False
print(age != 18) # Trueage = 17 的意思是把 17 赋值给变量 age。age == 18 的意思是比较 age 当前的值是否等于 18。
正在加载概念检查...
逻辑运算符
逻辑运算符(logical operator)用于连接多个条件。它们的结果仍然是布尔值。
and:多个条件都为True时,整体才是True。or:多个条件中至少有一个为True时,整体就是True。not:把True变成False,把False变成True。
逻辑运算符真值表
真值表(truth table)会把所有可能的输入组合列出来,帮助你看清逻辑运算符的规则。
and 要求左右两边都为 True,结果才是 True。
| A | B | A and B |
|---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
or 只要求左右两边至少有一边为 True,结果就是 True。
| A | B | A or B |
|---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
not 只作用在一个布尔值上,会把结果反过来。
| A | not A |
|---|---|
True | False |
False | True |
正在加载概念检查...
python
age = 20
has_ticket = True
print(age >= 18 and has_ticket) # True
print(age < 18 or has_ticket) # True
print(not has_ticket) # False如果你把条件读成自然语言,会更容易理解:age >= 18 and has_ticket 可以读成“年龄至少 18 岁,并且有票”。
正在加载交互实验...
正在加载概念检查...
组合条件
Python 支持链式比较。例如:
python
age = 16
print(0 < age < 18) # True这行代码等价于:
python
print(0 < age and age < 18)当条件变复杂时,建议使用括号让逻辑更清晰。
python
score = 85
attendance = 92
passed = score >= 60 and attendance >= 80
excellent = score >= 90 or attendance >= 95
print(passed) # True
print(excellent) # False不要急着把所有条件写成一行。先把每个小条件命名清楚,程序会更容易读,也更容易排错。
正在加载概念检查...