首页 > 编程语言 >python中逻辑运算符and 和 or 的优先级问题。

python中逻辑运算符and 和 or 的优先级问题。

时间:2024-07-15 13:55:00浏览次数:17  
标签:说明 优先级 运算 python 运算符 print True

python的说明文档以及教材上、网上都说明and的优先级大于or。但我经过实际操作,发现其中规律似乎并不简单,下面我列举一些代码,来提出我的疑问:有时候or的优先级高,有时候and优先级高,并且并不是从左至右运算。

首先说明python当中的and 和 or运算逻辑如下(这里必须懂):

        1、and运算:a and b ,如果a为False,直接返回a,不计算后续。否则返回b。

        2、or运算:   a  or  b ,如果a为True,直接返回a,不计算后续。否则返回b。

        3、在python中0为False,非0为True。

下面展示让我困惑许久的代码:

1、下面代码不报错,说明了a or b ,如果a为True,则直接返回True,无须计算b的值。

print(True or 1/0)  #输出True。 说明or前如果是True,则不会进行or后边运算。

2、下面这行代码,没有报除零异常。说明并没有优先进行and运算。

print(True or True and 1/0)   #输出True。 证明先进行or运算,后边and运算没进行。 

3、在python中0为False,非0为True。那么看下面代码:仍然说明并没有优先进行and运算。

print(2 or 2 and 1/0)   #输出2。证明先进行or运算,后面and运算并没进行计算。

4、下面代码说明优先计算了and。否则 如果先计算or,结果应该是2;如果从左向右计算,结果应该是5。

print(0 and 2 or 4 or 1 and 5) #输出4。说明是先and后or。 等同于(0 and 2) or 4 or (1 and 5)    

针对以上问题,期盼有师者为我解惑!

标签:说明,优先级,运算,python,运算符,print,True
From: https://blog.csdn.net/qq_28816251/article/details/140425560

相关文章

  • Python篇——继承及多重继承
    引言为什么要用到继承呢?因为继承可以减少代码冗余以及提高代码的重用性。1继承继承用于类的创建,继承描述类与类之间的关系新创建的类是子类,被继承的类是父类子类继承父类的属性和方法1.1场景条件——创建父类定义Person类,有两个属性:name和age,和一个方法greet,输出:Hi,......
  • Python篇——私有属性
    1私有属性的特点Python类中的私有属性是一种实现封装的方式,用于限制对某些属性的直接访问。以下是关于Python类中私有属性的主要特点:1.1命名约定使用双下划线(__)前缀来创建私有属性,例如‘ __private_attr’1.2名称改写(NameMangling)Python会自动将双下划线开头的属......
  • 面试算法(排序)附带c++/python实现
            排序算法是面试中会经常会被问到的一类问题,如果可以掌握较多的排序算法,在面试过程中才更有机会被面试官看重哦,下面我们准备了一些常见的面试算法,并分别给出了c++和python的代码实现,小伙伴们一起学起来吧!冒泡排序(BubbleSort)        基于交换的排序,......
  • python 面试宝典
    50道必备的Python面试题(建议点赞)-阿里云开发者社区(aliyun.com) ▍2、为什么Python执行速度慢,我们如何改进它?Python代码执行缓慢的原因,是因为它是一种解释型语言。它的代码在运行时进行解释,而不是编译为本地语言。为了提高Python代码的速度,我们可以使用CPython、Numba,或......
  • 基于小波分析的糖尿病视网膜病变检测(Python)
    fromscipyimportmiscfromPILimportImagefromskimageimportexposurefromsklearnimportsvmimportscipyfrommathimportsqrt,pifromnumpyimportexpfrommatplotlibimportpyplotaspltimportnumpyasnpimportglobimportmatplotlib.pyplotas......
  • 简单的小波分析入门教程(第一部分,Python)
    importnumpyasnpimportmatplotlib.pyplotaspltimportpywtSimpleSignalAnalysisusingDWT#Generatethesignalt=np.linspace(0,1,1000,endpoint=False)signal=np.cos(2.0*np.pi*7*t)+np.sin(2.0*np.pi*13*t)#ApplyDWTcoeffs=p......
  • Python数据库应用
      通过文件操作可以实现简单的数据操作功能,如果要处理的数据量巨大,则需要将数据存储在数据库中。Python支持多种数据库。  本章主要介绍数据库概念以及结构化数据库查询语言SQL,分析并理解Python自带的轻量级关系数据库SQLlite的使用方法(同样用于MySQL数据库)  文......
  • 基于风光储能和需求响应的微电网日前经济调度(Python代码实现)
    目录0引言1计及风光储能和需求响应的微电网日前经济调度模型1.1风光储能需求响应都不参与的模型1.2风光参与的模型1.3风光和储能参与模型1.4风光和需求响应参与模型1.5风光储能和需求响应都参与模型 2需求侧响应评价2.1 负载率2.2可再生能源消纳率2.3用户......
  • 基于风光储能和需求响应的微电网日前经济调度(Python代码实现)
    目录0引言1计及风光储能和需求响应的微电网日前经济调度模型1.1风光储能需求响应都不参与的模型1.2风光参与的模型1.3风光和储能参与模型1.4风光和需求响应参与模型1.5风光储能和需求响应都参与模型 2需求侧响应评价2.1 负载率2.2可再生能源消纳率2.3用户......
  • Python酷库之旅-第三方库Pandas(023)
    目录一、用法精讲58、pandas.isnull函数58-1、语法58-2、参数58-3、功能58-4、返回值58-5、说明58-6、用法58-6-1、数据准备58-6-2、代码示例58-6-3、结果输出59、pandas.notna函数59-1、语法59-2、参数59-3、功能59-4、返回值59-5、说明59-6、用法59-6-1、......