编程随笔

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

2020-03-17  本文已影响0人  jj_jump
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点:

关于and:

关于or:

关于not:

当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

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

参考链接

上一篇 下一篇

猜你喜欢

热点阅读