python中的逻辑判断与或非和其他语言的逻辑判断结果有一点不同,这一不小心就让中了招,有时候迷惑为什么结果与预测的结果大相径庭,既然是吃饭的手段,还是要认真的专研一下,以免出去让人看了笑话。

先来一组对比:

java中的逻辑运算:

python中的与或非详解
可见java中的逻辑运算只可以用于条件之间的判断,如果逻辑运算符的前后不是条件表达式,则会报错,如下图无法通过语法检测,且逻辑运算的结果为true或者false,是一个Boolean值 python中的与或非详解

python中的逻辑运算

python就比java要花里胡哨了,首先符号就不相同

一般逻辑符号 python中的逻辑符号
&& and
|| or
! not

这里展示一下python中逻辑运算符号运用

逻辑运算表达式 结果展示
逻辑与运算:
3>2 and 3>1 True
3 and 2 2
3>2 and 3>1 and 2 2
3 and 2>3 False
0 and None 0
逻辑或运算:
3>2 or 3>1 True
3>2 or 2 True
2 or 3>2 2
3 or 4 3
0 or None None
逻辑非运算
not 3 False
not 0 True

从上面表可以看出:python的逻辑运算可以同时运算条件表达式和值

(1)and: 结果为真时,返回最右边的表达式,如果最右边为条件表达式,则返回True,如果右边为值时,返回值。
结果为假时,返回第一个假,如果第一个假中是条件表达式,则返回False,如果是值,返回值
(2)or :返回遇到的第一个真值,如果是条件表达式,返回True,如果是值,返回值。
如果两边都是假,则返回最后一个假,如果是条件表达式,返回False,如果是值,返回值。

总之:
(1)and的返回结果:从左到右,如果结果为真,返回最后一个真;如果结果为假,返回第一个假
(2)or的返回结果:从左到右,如果结果为真,返回遇到的第一个真值;如果结果为假,返回最后一个假值

python中为False的一些值:

(1)一切0:0,0.0,0.000
(2)空值:[],{},()
(3)None
以上这些是值类型,并不是条件表达式,所以虽然结果为False,但是返回为其本身,即返回值

例如:
逻辑运算 结果
0 or [ ] [ ]
0 and [ ] 0
0 or None None

并不是返回False,没少在这上面踩坑,我都服了,原以为这不过是一个简单的知识点,没想到里面还大有文章,从了以前学java的惯性思维了。
学习是不能自满的,天下难事比起于易。

相关文章:

  • 2021-07-07
  • 2021-11-01
猜你喜欢
  • 2022-02-08
  • 2022-02-08
  • 2021-10-11
相关资源
相似解决方案