- Python
Python 第五课:逻辑运算符与综合条件判断
- 2025-6-7 16:48:54 @
Python 第五课:逻辑运算符与综合条件判断
一、知识回顾
在之前的课程中,我们学习了:
- 关系运算符:用于比较两个值的关系,包括
==
(等于)、!=
(不等于)、>
(大于)、<
(小于)、>=
(大于等于)、<=
(小于等于)。 - 条件语句:通过
if
、elif
、else
实现不同条件下的代码分支执行。
今天我们将深入学习逻辑运算符,并通过综合案例巩固所学知识。
二、逻辑运算符详解
逻辑运算符用于组合多个条件表达式,返回True
(真)或False
(假)。Python中有三种逻辑运算符:
2.1 and(逻辑与)
- 语法:
条件1 and 条件2
- 含义:当
条件1
和条件2
都为真时,整体结果为真;否则为假。 - 特性:若
条件1
为假,则直接返回假,不再判断条件2
。
示例:
x = 70
# 判断x是否在60到90之间(包括60和90)
print(60 <= x <= 90) # 输出: True
print(60 <= x and x <= 90) # 输出: True
print((60 <= x) and (x <= 90)) # 输出: True
2.2 or(逻辑或)
- 语法:
条件1 or 条件2
- 含义:当
条件1
或条件2
有一个为真时,整体结果为真;只有两者都为假时,结果才为假。 - 特性:若
条件1
为真,则直接返回真,不再判断条件2
。
示例:
x = 50
# 判断x是否小于60或大于90
print(x < 60 or x > 90) # 输出: True(50<60成立)
x = 90
print(not (x > 90)) # 输出: True(90>90不成立,not取反后为真)
2.3 not(逻辑非)
- 语法:
not 条件
- 含义:对条件取反,若原条件为真,则结果为假;原条件为假,结果为真。
示例:
x = 70
print(not (x < 60)) # 输出: True(70<60为假,not取反后为真)
三、逻辑运算符的返回值特性
逻辑运算符的返回值不仅是True/False
,还可以是具体的值:
- and:从左到右判断,若所有条件为真,返回最后一个值;若中途遇到假,返回第一个假值。
- or:从左到右判断,若遇到真值,返回第一个真值;若全为假,返回最后一个假值。
示例代码:
# and运算示例
a1 = 0 and 2 and 1 # 0为假,直接返回0
a2 = 0 and 2 or 1 # 0为假,继续判断2 or 1,2为真,返回2
a3 = 0 and 2 or 1 or 5 # 0为假,继续判断2 or 1 or 5,2为真,返回2
a4 = 0 and 2 or not(2) # not(2)为False,返回False
# or运算示例
print(0 or 10) # 0为假,返回下一个值10
print("" or "a") # ""为假,返回下一个值"a"
print(3 or 10) # 3为真,直接返回3
# and运算示例
print(3 and 10) # 3为真,继续判断10,返回10
print("0" and "a") # "0"为真(非空字符串),返回"a"
四、综合条件判断案例
4.1 成绩评定系统
案例1:简单成绩评定
- 要求:输入语文和数学成绩,若两科均大于90分显示"优秀",否则显示"良好"。
chinese = int(input("请输入语文成绩:"))
math = int(input("请输入数学成绩:"))
if chinese > 90 and math > 90:
print("优秀")
else:
print("良好")
案例2:扩展成绩评定
- 要求:两科均大于90分显示"优秀",任意一科小于60分显示"不及格",其他情况显示"良好"。
chinese = int(input("请输入语文成绩:"))
math = int(input("请输入数学成绩:"))
if chinese > 90 and math > 90:
print("优秀")
else:
if chinese < 60 or math < 60:
print("不及格")
else:
print("良好")
4.2 判断两位数
题目:判断一个正整数是否是两位数(10≤x≤99),若是输出1,否则输出0。
x = int(input())
if x >= 10 and x <= 99:
print(1)
else:
print(0)
4.3 逻辑运算符与布尔值
Python中以下值会被视为False
:
- 数值:0、0.0
- 空容器:""(空字符串)、[](空列表)、{}(空字典)等
- 特殊值:None
示例:
print(bool(10)) # 10为非0数,返回True
print(bool(0)) # 0返回False
print(bool("abc")) # 非空字符串返回True
print(bool("")) # 空字符串返回False
五、实战练习
5.1 练习:逻辑运算符特性
题目:分析以下代码的输出结果:
a = 0 and 3
b = not(13-3)
c = 0 or 10
d = "" and "a"
e = 3 and 10
f = "0" and "a"
print(a, b, c, d, e, f)
解析:
a = 0 and 3
:0为假,直接返回0b = not(13-3)
:13-3=10为真,not取反返回Falsec = 0 or 10
:0为假,返回10d = "" and "a"
:""为假,返回""e = 3 and 10
:3为真,返回10f = "0" and "a"
:"0"为真(非空),返回"a"- 输出:
0 False 10 "" 10 "a"
5.2 练习:复合条件判断
题目:输入一个年份,判断是否为闰年(闰年条件:能被4整除但不能被100整除,或能被400整除)。
year = int(input("请输入年份:"))
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
print(f"{year}年是闰年")
else:
print(f"{year}年不是闰年")
5.3 课后作业
题目:输入三个整数,判断是否能构成三角形(任意两边之和大于第三边)。
提示:设三边为a、b、c,需满足a+b>c and a+c>b and b+c>a
。
六、总结
- 关系运算符:比较两个值的大小或相等关系,返回布尔值。
- 逻辑运算符:
and
:所有条件为真才为真,短路特性(遇假则停)。or
:任一条件为真就为真,短路特性(遇真则停)。not
:对条件取反。
- 综合应用:通过逻辑运算符组合条件,实现复杂的条件判断逻辑。
通过多练习可以熟练掌握逻辑运算符的使用,下节课我们将学习循环语句,让程序具备重复执行的能力!
1 条评论
-
admin SU @ 2025-6-7 16:51:26
🐍 Python 第五课教程:关系运算符与逻辑运算符(适合零基础)
🧠 本节课目标:
通过本节课,你将掌握以下内容:
- 关系运算符:用于比较两个值的大小或相等性
- 逻辑运算符:用于组合多个条件表达式
- 布尔值:
True
和False
的理解与使用 - 实际应用:如成绩判断、数字范围判断、多条件组合判断
一、关系运算符(比较两个值的关系)
✅ 常见关系运算符:
运算符 描述 示例 ==
等于 5 == 5
→ True!=
不等于 5 != 3
→ True>
大于 5 > 3
→ True<
小于 3 < 5
→ True>=
大于等于 5 >= 5
→ True<=
小于等于 3 <= 5
→ True🔍 实例讲解:
x = 70 print(60 <= x <= 90) # True print(60 <= x and x <= 90) # True print((60 <= x) and (x <= 90)) # True
二、逻辑运算符(连接多个条件)
✅ 常用逻辑运算符:
运算符 描述 示例 and
逻辑“与” x > 0 and x < 9
or
逻辑“或” x > 90 or x < 60
not
逻辑“非” not (x > 60)
🔍 实例讲解:
判断一个数是否在某个范围内:
x = 70 print(x >= 60 and x <= 90) # True,表示在60到90之间
判断两个数是否都大于90:
chinese = int(input("请输入语文成绩:")) math = int(input("请输入数学成绩:")) if chinese > 90 and math > 90: print("优秀") else: print("良好")
三、布尔值(True 和 False)
Python 中很多表达式的结果是布尔值(True 或 False)。
示例:
print(bool(10)) # True print(bool(0)) # False print(bool("abc")) # True print(bool("")) # False
⚠️ 注意:0、空字符串、空列表、空字典、None 都会被视为 False
四、逻辑运算符特性详解
✅
and
运算符:- 如果第一个为真,返回第二个值。
- 如果第一个为假,直接返回第一个值。
print(0 and 2 and 1) # 输出:0 print(3 and 10) # 输出:10 print("0" and "a") # 输出:"a"
✅
or
运算符:- 如果第一个为真,直接返回第一个值。
- 如果第一个为假,继续看下一个。
print(0 or 10) # 输出:10 print(3 or 5) # 输出:3
✅
not
运算符:- 取反布尔值。
print(not (13 - 3)) # 输出:False
五、实战练习:成绩评定系统
💡 题目说明:
输入语文和数学成绩,如果语文和数学均大于90分,显示“优秀”;否则显示“良好”。
✅ 示例代码 + 注释:
# 输入语文成绩 chinese = int(input("请输入语文成绩:")) # 输入数学成绩 math = int(input("请输入数学成绩:")) # 判断是否都大于90 if chinese > 90 and math > 90: print("优秀") else: print("良好")
六、实战练习:扩展版成绩评定系统
💡 题目说明:
- 如果语文和数学都大于90分,输出“优秀”
- 如果有一门小于60分,输出“不及格”
- 否则输出“良好”
✅ 示例代码 + 注释:
chinese = int(input("请输入语文成绩:")) math = int(input("请输入数学成绩:")) if chinese > 90 and math > 90: print("优秀") else: if chinese < 60 or math < 60: print("不及格") else: print("良好")
七、实战练习:判断一个正整数是否是两位数
💡 题目说明:
判断一个正整数是否是两位数(即大于等于10且小于等于99)。如果是,输出1,否则输出0。
✅ 示例代码 + 注释:
x = int(input()) if x >= 10 and x <= 99: print(1) else: print(0)
八、实战练习:打印《春晓》诗文
💡 题目说明:
编写程序,输出题目《春晓》和诗句,每句换行。
✅ 示例代码 + 注释:
print("春晓") print("春眠不觉晓,") print("处处蚊子咬。") print("夜来嗡嗡声,") print("脓包知多少。")
九、知识点总结表
类型 作用 示例 关系运算符 比较两个值的关系 a == b
,a > b
,a <= b
逻辑运算符 组合多个条件 a and b
,a or b
,not a
布尔值 表示真假 True
,False
应用场景 成绩判断、数字判断、条件筛选等 if (a > 90 and b > 90): print("优秀")
十、课后练习建议(动手写一写)
- 编写程序:输入一个年份,判断是否为闰年。
- 条件:能被4整除但不能被100整除,或者能被400整除。
- 编写程序:输入三个数,判断它们能否组成三角形。
- 条件:任意两边之和大于第三边。
- 编写程序:输入一个分数,输出对应的等级(A:90-100, B:80-89, C:60-79, D:<60)
- 编写程序:模拟登录验证。
- 用户名正确且密码正确才允许登录。
🎯 总结一句话:
关系运算符用于比较数值,逻辑运算符用于组合条件,它们是控制程序流程的关键工具。掌握好这些基础操作,才能写出更复杂、更智能的程序!
祝你学习愉快,编程顺利!🚀
- 1