Python逻辑运算
Python的逻辑运算用于处理真(True)和假(False)这两种布尔值,这是编程中进行条件判断的基础。
小贴士:逻辑运算就像红绿灯一样,红灯停(False),绿灯行(True)!
逻辑运算符
Python中有三种基本的逻辑运算符:
| 运算符 | 名称 | 说明 | 示例 |
|---|---|---|---|
| and | 与 | 两个条件都为True时,结果才为True | True and False → False |
| or | 或 | 只要有一个条件为True,结果就为True | True or False → True |
| not | 非 | 对结果取反,True变False,False变True | not True → False |
真值表
逻辑运算遵循布尔代数规则,以下是完整的真值表:
| A | B | A and B | A or B | not A |
|---|---|---|---|---|
| True | True | True | True | False |
| True | False | False | True | False |
| False | True | False | True | True |
| False | False | False | False | True |
逻辑运算示例
# 与运算 (and)
print(10 > 5 and 3 <= 3) # True and True → True
print(10 != 10 and 5 == 5) # False and True → False
# 或运算 (or)
print(10 <= 5 or 100 > 50) # False or True → True
print(0 == 1 or 2 < 1) # False or False → False
# 非运算 (not)
print(not (10 == 10)) # not True → False
print(not (5 > 10)) # not False → True
print(10 > 5 and 3 <= 3) # True and True → True
print(10 != 10 and 5 == 5) # False and True → False
# 或运算 (or)
print(10 <= 5 or 100 > 50) # False or True → True
print(0 == 1 or 2 < 1) # False or False → False
# 非运算 (not)
print(not (10 == 10)) # not True → False
print(not (5 > 10)) # not False → True
逻辑运算的优先级
逻辑运算符的优先级如下(从高到低):
- not - 最高优先级
- and - 中等优先级
- or - 最低优先级
优先级示例
# 表达式: True or False and not True
# 实际计算: True or (False and (not True))
result = True or False and not True
print(result) # True or (False and False) → True or False → True
# 使用括号明确优先级
result = (True or False) and (not False)
print(result) # True and True → True
# 实际计算: True or (False and (not True))
result = True or False and not True
print(result) # True or (False and False) → True or False → True
# 使用括号明确优先级
result = (True or False) and (not False)
print(result) # True and True → True
输入数据
逻辑运算
输出结果
逻辑运算的实际应用
逻辑运算符常用于条件判断,例如在游戏开发中判断玩家是否获胜:
# 游戏通关条件
has_key = True
defeated_boss = True
collected_treasure = False
# 通关需要钥匙和打败BOSS
can_win = has_key and defeated_boss
# 获得奖励需要通关并收集宝物
get_reward = can_win and collected_treasure
# 输出结果
print("能否通关:", can_win) # True
print("能否获得奖励:", get_reward) # False
has_key = True
defeated_boss = True
collected_treasure = False
# 通关需要钥匙和打败BOSS
can_win = has_key and defeated_boss
# 获得奖励需要通关并收集宝物
get_reward = can_win and collected_treasure
# 输出结果
print("能否通关:", can_win) # True
print("能否获得奖励:", get_reward) # False
重要注意事项
- 短路特性:当使用
and时,如果第一个表达式为False,就不会计算第二个表达式 - 表达式顺序:使用
or时,Python会返回第一个为True的表达式 - 括号使用:复杂逻辑表达式使用括号明确优先级
- 布尔上下文:Python中0、空字符串、None等被视为False
逻辑门可视化
逻辑运算可以通过逻辑门表示:
AND
与门(AND)
OR
或门(OR)
NOT
非门(NOT)
逻辑运算小知识
布尔逻辑是由19世纪的数学家乔治·布尔发明的
计算机中的所有计算最终都转化为布尔逻辑运算
动手练习
在下面的交互区域练习Python逻辑运算:
逻辑运算练习
计算结果将显示在这里
基本逻辑运算结果