返回顶部
首页 > 资讯 > 后端开发 > Python >如何理解Python中 and 和 or 运算短路逻辑
  • 942
分享到

如何理解Python中 and 和 or 运算短路逻辑

2023-06-01 22:06:29 942人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本篇文章为大家展示了如何理解python中 and 和 or 运算短路逻辑,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。短路逻辑规则如下:表达式从左至右运算,若 or 的左侧逻辑值为 True ,则

本篇文章为大家展示了如何理解python中 and 和 or 运算短路逻辑,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

短路逻辑规则如下:

表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 。若 or 的左侧逻辑值为 False ,则输出or右侧的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果。

表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算。若 and 的左侧逻辑值为 True,则输出其后的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果

若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑。

注意:

Python中and的优先级是大于or的,而且and和or都是会返回值的并且不转换为True和False。当not和and及or在一起运算时,优先级为是not>and>or

在Python中,None、任何数值类型中的0、空字符串“”、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了  __ nonzero __ () 或 __ len __ () 方法且方法返回 0 或False,则其实例也被当作False,其他对象均为True。

下面是最简单的逻辑运算:

        True  and True    ==> True                                     True  or True    ==> True
        True  and False   ==> False                                   True  or False   ==> True
        False and True    ==> False                                   False or True    ==> True
        False and False   ==> False                                   False or False   ==> False

接下来我们再举一个具体的例子:

先来定义一组函数:

1>  def a():

    2>     print ('A')

    3>     return 1

    4>  def b():

    5>     print ('B')

    6>     return 1

    7>  def c():

    8>     print ('C')

    9>     return []

    10> def d():

    11>    print ('D')

    12>    return []

    13> def e():

    14>    print ('E')

    15>    return 1   

例1:

17> if a() and b() and c() and d() and e():

    18>    print ('ok')

 

    #显示结果如下

    A   

a() 为假 ,其后均为 and 语句,全部短路,最终只返回 a() 的表达式。记住,所有被短路的表达式均不会被输出。所以,此处仅仅打印 A

例2:

17> if a() and b() and c() and d() and e():

    18>    print ('ok')

 

    #显示结果如下

    A

    B

    C   

python 从左至右先执行 a() ,a() 返回的逻辑值为 True,后面是 and 语句,所以不能短路其后,继续与 b() 进行逻辑运算,a() and b() 输出 b() 的逻辑值 True,接着与 c() 进行逻辑运算,b() and c() 输出 c() 的逻辑值 False,而其后均为 and 语句, 则全部短路,最终只打印了 A B C 。

例3:

17> if a() or b() or c() or d() or e():

    18>    print ('ok')

 

    #显示结果如下

    A

    Ok 

    #显示结果如下

    A

    ok   

a() 的逻辑值为 True ,其后均为 or 语句,全部短路,最终只打印了 A,而 if 语句为 True ,所以还要打印一个 ok。

例4:

    17> if a() or b() or c() or d() or e():

    18>    print ('ok')

 

    #显示结果如下

    A

    B

    C

    Ok

python 从左至右先执行 a() ,a() 返回的逻辑值为 False,后面是 or 语句,所以不能短路其后,继续与 b() 进行逻辑运算,a() or b() 输出 b() 的逻辑值 False,接着与 c() 进行逻辑运算,b() or c() 输出 c() 的逻辑值 True,而其后为 or 语句, 则全部短路,最终只打印了 A B C ok。

例5:

 26> if a() and b() and  c() and d() or e() and f() or g() and h():

    27>    print ('ok')

 

    #输出结果如下:

    A

    E

    F

    Ok  

别以为语句很长就很难,我们好好分析一下,从左至右,首先a() 的逻辑值为 False,其后到 or 语句为止有三个 and 语句: a() and b() and c() and d(),均被短路。只输出 a(), 得到 a() or e() 为True,输出 e() ,得 e() and F() 为 True ,输出 f(), 其后接 or 语句,则短路其后所有。最终只打印了A E F ok 。

上述内容就是如何理解Python中 and 和 or 运算短路逻辑,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网Python频道。

--结束END--

本文标题: 如何理解Python中 and 和 or 运算短路逻辑

本文链接: https://lsjlt.com/news/227982.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何理解Python中 and 和 or 运算短路逻辑
    本篇文章为大家展示了如何理解Python中 and 和 or 运算短路逻辑,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。短路逻辑规则如下:表达式从左至右运算,若 or 的左侧逻辑值为 True ,则...
    99+
    2023-06-01
  • python中and和or逻辑运算符的示例分析
    这篇文章给大家介绍python中and和or逻辑运算符的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、概述python中的逻辑操作符and 和or,也叫惰性求值,由于是惰性,只要确定了值就不往后解析代码了。...
    99+
    2023-06-26
  • python中and和or逻辑运算符的用法示例
    目录一、概述二、用法说明(一)and 用法(二)or 用法三、两个集合and 和or操作的时候的问题四、优先级问题(and > or)附:python中if语句and和or用法...
    99+
    2024-04-02
  • java中有哪些短路逻辑运算符
    本篇文章给大家分享的是有关java中有哪些短路逻辑运算符,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java可以用来干什么Java主要应用于:1. web开发;2. Andr...
    99+
    2023-06-14
  • java短路逻辑运算符实例用法详解
    1、说明 逻辑操作符执行短路求值。所谓短路,就是当一个参与运算的操作数足以推断该表达式的值时,另一个操作数(可能是表达式)就不会执行。 在使用逻辑操作符时,当两个操作数都是true时...
    99+
    2024-04-02
  • JavaScript中怎么实现逻辑运算符短路操作
    今天就跟大家聊聊有关JavaScript中怎么实现逻辑运算符短路操作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。js逻辑运算符有三个:逻辑非!、逻...
    99+
    2024-04-02
  • 如何理解linux shell逻辑运算符、逻辑表达式
    这篇文章主要介绍“如何理解linux shell逻辑运算符、逻辑表达式”,在日常操作中,相信很多人在如何理解linux shell逻辑运算符、逻辑表达式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解l...
    99+
    2023-06-09
  • 聊聊python逻辑运算及奇怪的返回值(not,and,or)问题
    首先,‘and’、‘or’和‘not’的优先级是not>and>or。 同一优先级从左往右计算。 ...
    99+
    2024-04-02
  • python逻辑运算及奇怪的返回值(not,and,or)问题的示例分析
    小编给大家分享一下python逻辑运算及奇怪的返回值(not,and,or)问题的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先,and、or和not...
    99+
    2023-06-29
  • PHP中逻辑运算符如何使用
    本篇文章给大家分享的是有关PHP中逻辑运算符如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.字符串运算符例子:<php $a="Hello&...
    99+
    2023-06-17
  • 详解Python中的元组与逻辑运算符
    Python元组 元组是另一个数据类型,类似于List(列表)。 元组用"()"标识。内部元素用逗号隔开。但是元素不能二次赋值,相当于只读列表。 #!/usr/bin/python # -*- cod...
    99+
    2022-06-04
    详解 运算符 逻辑
  • Python图像处理之图像算术与逻辑运算详解
    目录一.图像加法运算二.图像减法运算三.图像与运算四.图像或运算五.图像非运算六.图像异或运算七.总结一.图像加法运算 图像加法运算主要有两种方法。第一种是调用Numpy库实现,目标...
    99+
    2024-04-02
  • JavaScript 中如何使用逻辑赋值运算符
    本篇文章为大家展示了JavaScript 中如何使用逻辑赋值运算符,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。无条件 vs 有条件数学运算符,例如 +是无条件的。...
    99+
    2024-04-02
  • 深入理解Python运算符:位移运算符、逻辑运算符和运算符优先级的实践手册
    进阶Python运算符的应用:位移运算符、逻辑运算符、运算符优先级的实践指南 Python是一门广泛应用于各个领域的高级编程语言,而掌握其中的运算符的使用是非常重要的。除了基本的算术运算符,Python还提供了许多其他类型的运算...
    99+
    2024-01-20
    优先级 逻辑运算符 位移运算符
  • Bash中的逻辑和(&)该如何理解
    本篇文章为大家展示了Bash中的逻辑和(&)该如何理解,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在 Bash 中,你可以使用 & 作为 AND(逻辑和)操作符。有人可能会认为两篇...
    99+
    2023-06-16
  • 深入解析Python运算符:比较运算符、逻辑运算符、位运算符的用途和含义
    Python运算符解析:比较运算符、逻辑运算符、位运算符的用法和意义 一、比较运算符比较运算符用于比较两个值之间的关系,并返回一个布尔值(True或False)。下面是常见的比较运算符: 等于(==): 判断两个值是否相等,如...
    99+
    2024-01-20
    逻辑 运算符 比较
  • 如何理解Oracle逻辑读和物理读
    本篇文章为大家展示了如何理解Oracle逻辑读和物理读,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.物理读(physical read)物理读即是把数据从磁盘读...
    99+
    2024-04-02
  • 如何正确使用C语言中的逻辑或运算符||
    标题: 如何正确使用C语言中的逻辑或运算符|| 在C语言中,逻辑或运算符||是一种常用的逻辑运算符,用于判断条件中的任意一个条件是否成立。正确使用逻辑或运算符可以帮助我们编写更加简洁...
    99+
    2024-04-02
  • 如何轻松掌握PHP逻辑运算符语法和使用技术
    本篇文章给大家分享的是有关如何轻松掌握PHP逻辑运算符语法和使用技术,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。PHP有很多值得学习的地方,这里我们主要介绍PHP逻辑运算符,...
    99+
    2023-06-17
  • 如何理解CSS中选择器的逻辑处理
    这篇文章给大家介绍如何理解CSS中选择器的逻辑处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在过去的很长一段时间中,我们都说 CSS 是不带有任何逻辑的,意思是在 CSS 中没有控...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作