• Python
  • Python 第五课:逻辑运算符与综合条件判断

  • @ 2025-6-7 16:48:54

Python 第五课:逻辑运算符与综合条件判断

一、知识回顾

在之前的课程中,我们学习了:

  • 关系运算符:用于比较两个值的关系,包括==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。
  • 条件语句:通过ifelifelse实现不同条件下的代码分支执行。

今天我们将深入学习逻辑运算符,并通过综合案例巩固所学知识。

二、逻辑运算符详解

逻辑运算符用于组合多个条件表达式,返回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为假,直接返回0
  • b = not(13-3):13-3=10为真,not取反返回False
  • c = 0 or 10:0为假,返回10
  • d = "" and "a":""为假,返回""
  • e = 3 and 10:3为真,返回10
  • f = "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

六、总结

  1. 关系运算符:比较两个值的大小或相等关系,返回布尔值。
  2. 逻辑运算符
    • and:所有条件为真才为真,短路特性(遇假则停)。
    • or:任一条件为真就为真,短路特性(遇真则停)。
    • not:对条件取反。
  3. 综合应用:通过逻辑运算符组合条件,实现复杂的条件判断逻辑。

通过多练习可以熟练掌握逻辑运算符的使用,下节课我们将学习循环语句,让程序具备重复执行的能力!

1 条评论

  • @ 2025-6-7 16:51:26

    🐍 Python 第五课教程:关系运算符与逻辑运算符(适合零基础)


    🧠 本节课目标:

    通过本节课,你将掌握以下内容:

    • 关系运算符:用于比较两个值的大小或相等性
    • 逻辑运算符:用于组合多个条件表达式
    • 布尔值TrueFalse 的理解与使用
    • 实际应用:如成绩判断、数字范围判断、多条件组合判断

    一、关系运算符(比较两个值的关系)

    ✅ 常见关系运算符:

    运算符 描述 示例
    == 等于 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("优秀")

    十、课后练习建议(动手写一写)

    1. 编写程序:输入一个年份,判断是否为闰年。
      • 条件:能被4整除但不能被100整除,或者能被400整除。
    2. 编写程序:输入三个数,判断它们能否组成三角形。
      • 条件:任意两边之和大于第三边。
    3. 编写程序:输入一个分数,输出对应的等级(A:90-100, B:80-89, C:60-79, D:<60)
    4. 编写程序:模拟登录验证。
      • 用户名正确且密码正确才允许登录。

    🎯 总结一句话:

    关系运算符用于比较数值,逻辑运算符用于组合条件,它们是控制程序流程的关键工具。掌握好这些基础操作,才能写出更复杂、更智能的程序!

    祝你学习愉快,编程顺利!🚀

    • 1