美文网首页编程随笔
python中逻辑运算符的优先级问题

python中逻辑运算符的优先级问题

作者: jj_jump | 来源:发表于2020-03-17 21:01 被阅读0次
Image

python中逻辑运算符的优先级问题

遇到的问题

今天做题的时候,碰到一个关于逻辑运算符优先级的问题,看到之后我懵了

    0 and 1 

    2 and 3

    0 or 1

    2 or 3

    上面的返回值是什么?

我一开始以为返回的都是左边的值,但是结果和我想的不同,结果如下:

In [4]: 0 and 1
Out[4]: 0

In [5]: 2 and 3
Out[5]: 3

In [6]: 0 or 1
Out[6]: 1

In [7]: 2 or 3
Out[7]: 2

为什么 0 and 1 返回的是 0 , 而2 and 3却返回的是3?

为什么 0 or 1 返回的是 1 , 而 2 or 3却返回的是2?

经过我不断地额翻阅资料,我找到了答案。

首先要明白以下2点:

  • 逻辑运算符的优先级:not > and > or

  • Python中所有的空字符串都是假,非空字符串都是真,非零的数字都是真

关于and:

  • 只要左边的表达式为真,那么整个表达式返回的是右边表达式的值,否则返回的是左边表达式的值

  • 换言之,x and y 的值只能是x 和 y,x为真时就是y,x为假就是x,示例如下:

      In [1]: x=1
    
      In [2]: y=2
    
      In [3]: x and y
      Out[3]: 2
    
      In [4]: x=0
      
      In [5]: y=1
    
      In [6]: x and y
      Out[6]: 0
    

关于or:

  • 只要两边的表达式都为真,整个表达式的结果返回的是左边表达式的值;

  • 如果一真一假,返回真值表达式的值;

  • 如果两个值都假,比如空值和0,返回的是右边的值

  • 换言之,x or y 的值只可能是 x 和 y,x为真就是x,x为假就是y,示例如下:

      In [7]: x=1
    
      In [8]: y=0
    
      In [9]: x or y
      Out[9]: 1
    
      In [10]: x='hello'
    
      In [11]: y='world'
    
      In [12]: x or y
      Out[12]: 'hello'
    
      In [13]: x=''
    
      In [14]: y=0
    
      In [15]: x or y
      Out[15]: 0
    

关于not:

  • x为真,则输出False
  • x为假,则输出True

当not和and及or在一起运算时,优先级为是not>and>or,下面来看下3个逻辑运算符一起使用的结果:

In [18]: (5>3) and (2>4) or not 6<7
Out[18]: False

In [19]: (5>3) and (2<4) or not 6<7
Out[19]: True

In [20]: (5>3) and (2<4) or not 6>7
Out[20]: True

希望对大家有帮助,也是对自己遇到的问题的记录。

参考链接

相关文章

  • python中逻辑运算符的优先级问题

    python中逻辑运算符的优先级问题 遇到的问题 今天做题的时候,碰到一个关于逻辑运算符优先级的问题,看到之后我懵...

  • Python基础篇之运算符

    主要介绍Python的逻辑运算符以及其优先级 逻辑运算符 运算符解释案例单运算符+加法a+b 均为数字两者求和,均...

  • Python运算符的优先级

    python中运算符的优先级示意图 python中运算符的优先级口诀 函数寻址下标一 幂运算小二小嘻嘻 全体单元第...

  • 03-基本运算

    运算符分为:算术运算符、比较运算符和逻辑运算符优先级是:算术运算符>比较运算符>逻辑运算符 注意:没记住优先级的话...

  • 运算符

    比较运算符中没有=,只有==逻辑运算符 条件运算符 运算符的优先级 事实上一般会使用小括号辅助进行优先级管理

  • 4.3 逻辑运算符

    逻辑运算符通常用于条件判断,基本用法如下: 在处理逻辑运算符的问题上,需要特别注意几点: 一:优先级问题,建议参考...

  • Python学习笔记二(运算符、程序结构)

    Python 运算符 python中运算符分为五大类:算术运算符、赋值运算符、比较运算符、逻辑运算符、条件运算符(...

  • 03-基本运算

    运算符可以分为:算术运算符、比较运算符和逻辑运算符。 优先级是:算术运算符>比较运算符>逻辑运算符。 不过呢,开始...

  • 03-基本运算

    运算符可以分为:算术运算符、比较运算符和逻辑运算符。优先级是:算术运算符>比较运算符>逻辑运算符。不过呢,开始没背...

  • Python运算符是什么?本文详解!

    Python中的运算符是什么? 运算符是Python中执行算术或逻辑计算的特殊符号。运算符所操作的值称为操作数。 ...

网友评论

    本文标题:python中逻辑运算符的优先级问题

    本文链接:https://www.haomeiwen.com/subject/qyvxyhtx.html