各位Python初学者,上一节课我们学习了比较运算符,比较运算只会产出True、False两种布尔值。本节课学习逻辑运算符,作用是把多个比较条件组合在一起,实现多条件同时判断,是if、while循环必不可少的知识点。全文通俗易懂,包含独有特性、易错坑点、完整代码案例,零基础也能学会!
如果你多条件判断结果和预期不符,分不清and和or执行逻辑、搞不懂短路特性,欢迎在评论区留言提问;也可以分享自己写的练习代码,大家互相交流纠错!
一、逻辑运算符基础概念
1. 定义
逻辑运算符专门用来拼接多个布尔条件,运算结果依旧是布尔值 True 、 False。
适用场景:同时满足多个条件、满足任意一个条件、对条件结果取反。
2. 三大逻辑运算符总表
运算符 | 名称 | 核心规则 | 通俗解释 |
and | 逻辑与 | 两边全为True,结果才是True;一个False整体为False | 并且,所有条件必须同时成立 |
or | 逻辑或 | 任意一边为True,结果就是True;两边全False才是False | 或者,只要一个条件成立即可 |
not | 逻辑非 | 取反,True变False,False变True | 相反,颠倒判断结果 |
二、核心代码案例分步讲解
案例1:and 逻辑与(全部条件同时满足)
# 示例1:数字比较组合判断age = 20score = 85# 条件1:年龄≥18 并且 分数≥60res = age >= 18 and score >= 60print("成年且及格:", res)# 示例2:存在一个False,整体结果Falseres2 = age >= 18 and score >= 90print("成年且优秀:", res2)
运行输出:
案例2:or 逻辑或(满足任意一个即可)
weather = "下雨"weekend = False# 下雨 或者 周末,就不用出门跑步res = weather == "下雨" or weekend == Trueprint("不用跑步:", res)# 两个条件都不成立,结果才为Falseres2 = weather == "晴天" or weekend == Trueprint("不用跑步:", res2)
运行输出:
案例3:not 逻辑非(结果取反)
flag = Trueprint(not flag)# 搭配比较运算使用age = 16# 条件:不是成年人res = not (age >= 18)print("未成年:", res)
运行输出:
三、重点特殊知识点(Python独有短路机制,高频考点)
1. and 短路规则
从左向右判断,如果左边条件为 False,直接停止后续计算,直接返回False,不会执行右边代码。
# 左边10 > 20 结果False,右边代码不会运行num = 5res = 10 > 20 and num + 10print(res)
输出:False
2. or 短路规则
从左向右判断,如果左边条件为 True,直接停止后续计算,直接返回True,忽略右侧内容。
# 左边10 < 20 结果True,右侧代码不执行num = 5res = 10 < 20 or num + 10print(res)
输出:True
3. 逻辑运算符优先级(必考)
优先级从高到低:not > and > or
同级从左往右计算;想要改变运算顺序,用小括号 () 包裹条件。
# 不加括号:先算and,再算orprint(True or False and False)# 加括号:先算orprint((True or False) and False)
运行结果:
4. 拓展:非布尔值参与逻辑运算(特殊用法)
and、or不仅能写布尔表达式,数字、字符串等数据也能参与运算,返回原值而非单纯True、False:
and:全为真值,返回最后一个值;遇到假值直接返回假值
or:遇到真值直接返回真值;全为假返回最后一个假值
# and演示print(3 and 5) # 两个真值,返回后者5print(0 and 8) # 0是假值,直接返回0# or演示print(3 or 5) # 第一个为真,直接返回3print("" or "hi") # 空字符串为假,返回hi
输出:
四、结合if语句实战案例(项目常用写法)
# 需求:年龄18~60岁,且分数大于70,才能入职age = 25score = 78if age >= 18 and age <= 60 and score > 70: print("符合入职条件")else: print("不符合入职条件")
输出:符合入职条件
五、课后练习题(共3道,难度循序渐进)
第1题 基础逻辑判断
给定 x=18,y=75,直接打印以下逻辑运算结果:
1. x >= 18 and y >= 60
2. x < 16 or y > 80
3. not (x == 18)
第2题 优先级+短路综合题
1. 计算 False or True and False 并打印结果
2. 计算 (False or True) and False 并打印结果
3. 使用短路特性,观察 0 and 100、99 or "" 的输出
第3题 综合条件应用题
定义变量 height = 165,vip = False
需求:身高大于160 或者 是VIP,就可以免费游玩,用if语句实现,打印对应提示。
本节课逻辑运算符全部知识点讲解完毕,核心重点:and、or、not三条判断规则、短路特性、运算符优先级、非布尔值运算规则。逻辑运算是分支、循环结构的核心基础,一定要多加练习!
完成练习题的同学可以把代码粘贴在评论区,我帮你核对答案、排查逻辑错误;多条件判断混乱、短路机制看不懂的小伙伴都可以留言提问。下一节课我们学习位运算符,继续学习Python运算符体系!