赞
踩
python中的逻辑判断与或非和其他语言的逻辑判断结果有一点不同,这一不小心就让中了招,有时候迷惑为什么结果与预测的结果大相径庭,既然是吃饭的手段,还是要认真的专研一下,以免出去让人看了笑话。
可见java中的逻辑运算只可以用于条件之间的判断,如果逻辑运算符的前后不是条件表达式,则会报错,如下图无法通过语法检测,且逻辑运算的结果为true或者false,是一个Boolean值
python就比java要花里胡哨了,首先符号就不相同
一般逻辑符号 | python中的逻辑符号 |
---|---|
&& | and |
|| | or |
! | not |
逻辑运算表达式 | 结果展示 |
---|---|
逻辑与运算: | |
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 |
(1)and: 结果为真时,返回最右边的表达式,如果最右边为条件表达式,则返回True,如果右边为值时,返回值。
结果为假时,返回第一个假,如果第一个假中是条件表达式,则返回False,如果是值,返回值
(2)or :返回遇到的第一个真值,如果是条件表达式,返回True,如果是值,返回值。
如果两边都是假,则返回最后一个假,如果是条件表达式,返回False,如果是值,返回值。
(1)一切0:0,0.0,0.000
(2)空值:[],{},()
(3)None
以上这些是值类型,并不是条件表达式,所以虽然结果为False,但是返回为其本身,即返回值
逻辑运算 | 结果 |
---|---|
0 or [ ] | [ ] |
0 and [ ] | 0 |
0 or None | None |
并不是返回False,没少在这上面踩坑,我都服了,原以为这不过是一个简单的知识点,没想到里面还大有文章,从了以前学java的惯性思维了。
学习是不能自满的,天下难事比起于易。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。