当前位置: 首页 > article >正文

Day20:逻辑运算

逻辑运算是计算机编程中的一种基础操作,用于处理布尔类型的数据(TrueFalse)。在Python中,逻辑运算符用于组合多个条件表达式,帮助我们实现更复杂的条件判断和控制流。理解和掌握逻辑运算符的使用,可以使我们在编程中更加高效地处理条件判断、循环控制以及逻辑推理。


1. 什么是逻辑运算?

逻辑运算是一种用于操作布尔值(TrueFalse)的运算。它通过对布尔值的操作,生成新的布尔值。逻辑运算常用于判断语句、条件语句等,它允许我们结合多个条件,形成更复杂的判断规则。

Python提供了三种常用的逻辑运算符:

  • and(与运算):两个条件都为真时,结果才为真。
  • or(或运算):两个条件中只要有一个为真,结果就为真。
  • not(非运算):对条件取反,如果条件为真,则结果为假,反之亦然。

2. 逻辑运算符的基本用法

2.1 and 运算符

and 运算符用来判断两个条件是否都为真,只有在两个条件都为真时,结果才为真。

示例:

x = 10
y = 5

# 判断x是否大于5且y是否小于10
if x > 5 and y < 10:
    print("条件满足")
else:
    print("条件不满足")

输出:

条件满足

在这个例子中,x > 5y < 10 都为真,因此整个条件表达式的结果为真,输出“条件满足”。

2.2 or 运算符

or 运算符用来判断两个条件中是否有一个为真,只要有一个条件为真,结果就为真。

示例:

x = 3
y = 7

# 判断x是否小于5或y是否大于10
if x < 5 or y > 10:
    print("条件满足")
else:
    print("条件不满足")

输出:

条件满足

在这个例子中,x < 5 为真,y > 10 为假,但由于使用了or运算符,只要有一个条件为真,结果就为真,因此输出“条件满足”。

2.3 not 运算符

not 运算符用于取反一个布尔值。如果条件为真,not 会将其变为假;如果条件为假,not 会将其变为真。

示例:

x = 5

# 判断x是否不是负数
if not x < 0:
    print("x不是负数")
else:
    print("x是负数")

输出:

x不是负数

在这个例子中,x < 0 为假,not 运算符将其取反变为真,因此输出“x不是负数”。


3. 逻辑运算符的优先级

逻辑运算符在表达式中的运算顺序遵循一定的优先级规则。not 运算符的优先级高于 and,而 and 运算符的优先级又高于 or 运算符。因此,在多个逻辑运算符一起使用时,我们可以通过使用括号来明确运算顺序。

3.1 运算顺序示例

示例:

x = True
y = False
z = True

result = x or y and z  # 先计算y and z,再计算x or (y and z)
print(result)  # 输出:True

在这个例子中,y and z 先执行,因为and 的优先级高于 or,结果为False。然后,x or False 计算结果为 True,因此输出True

3.2 使用括号改变优先级

示例:

x = True
y = False
z = True

result = (x or y) and z  # 先计算x or y,再计算(x or y) and z
print(result)  # 输出:True

通过使用括号,x or y 先计算,结果为 True,然后计算 True and z,结果为 True,因此输出True


4. 逻辑运算符的短路行为

逻辑运算符 andor 具有短路行为,即在某些情况下,不会计算所有的条件表达式。

4.1 and 的短路行为

如果and左边的条件已经为假,Python就不会再计算右边的条件,因为结果已经可以确定为假。

示例:

x = 0
y = 5

# 判断x是否大于0且y是否大于0
if x > 0 and y > 0:
    print("条件满足")
else:
    print("条件不满足")

输出:

条件不满足

在这个例子中,由于x > 0 为假,Python直接判断结果为假,而没有计算 y > 0

4.2 or 的短路行为

如果or左边的条件已经为真,Python就不会再计算右边的条件,因为结果已经可以确定为真。

示例:

x = 10
y = 5

# 判断x是否大于0或y是否小于0
if x > 0 or y < 0:
    print("条件满足")
else:
    print("条件不满足")

输出:

条件满足

在这个例子中,由于x > 0 为真,Python直接判断结果为真,而没有计算 y < 0


5. 课后练习

  1. 使用 and 运算符
    编写一个程序,检查一个数字是否在0到10之间(包括0和10)。

  2. 使用 or 运算符
    编写一个程序,检查一个数字是否是负数或者大于100。

  3. 使用 not 运算符
    编写一个程序,检查一个布尔变量是否为假,并输出相应的提示信息。

  4. 逻辑运算符优先级
    编写一个程序,计算以下表达式的结果,并解释其运算顺序:
    True or False and not True

  5. 逻辑运算符短路
    编写一个程序,检查以下两个条件并输出短路结果:
    False and (5 / 0)True or (5 / 0)(注意:5 / 0 会引发异常,观察短路行为是否防止异常的发生)


6. 本章小结

本章介绍了Python中的逻辑运算符,包括 andornot,并探讨了它们的用法、优先级以及短路行为。通过逻辑运算符,我们可以将多个条件组合成更复杂的表达式,从而实现更精细的条件控制。掌握逻辑运算符的使用,对于编写高效、清晰的条件判断语句至关重要。


http://www.kler.cn/a/463052.html

相关文章:

  • C# 设计模式:装饰器模式与代理模式的区别
  • Linux终端输入删除键backspace显示^H,输入上下左右键显示^A^B^C^D原理以及详细解决办法!
  • 项目优化之策略模式
  • 1961-2022年中国大陆多干旱指数数据集(SPI/SPEI/EDDI/PDSI/SC-PDSI/VPD)
  • 【面试】后端开发面试中常见数据结构及应用场景、原理总结
  • vue cli更新遇到的问题(vue -V查询版本号不变的问题)
  • 30.Marshal.AllocHGlobal C#例子
  • 递归算法.
  • AI对接之JSON Output
  • 使用连字符容易出错,尽量使用驼峰式的
  • java 上传txt json等类型文件解析后返回给前端
  • OpenCV-Python实战(9)——滤波降噪
  • C++“STL之String”
  • 说说缓存使用的具体场景都有哪些?缓存和数据库一致性问题该如何解决?缓存使用常见问题有哪些?
  • 融合表面信息和等变扩散的分子对接模型 SurfDock - 评测
  • Git的使用流程(详细教程)
  • NFT Insider #162:Cool Cats和Doodles或将推出代币
  • 线性表的三种常见查找算法(顺序查找、折半查找、分块查找)及算法分析
  • 无人机巡检在光伏电站中的应用优势
  • HarmonyOS NEXT版本Stage应用开发模型介绍(附视频讲解)
  • SWM221系列芯片之电机应用及控制
  • git的全通路线介绍
  • Mono里运行C#脚本19—get_runtime_by_version
  • stipple函数的坑......matlab绘制显著点
  • 【手搓一个脚本语言】六、用C语言抽象语法树AST计算表达式的值
  • 机加工行业制造执行MES系统-打造智能MES系统解决方案