鱼C论坛

 找回密码
 立即注册
查看: 1415|回复: 6

[已解决]python中的短路逻辑

[复制链接]
发表于 2019-12-30 14:54:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
去百度上搜了搜,得到的答案是:
[
if a and b:#如果a是false,那么跳过b的判断,结果直接false
if a or b:#如果a为true,那么跳过b的判断,直接true

not or and 的优先级是不同的:not > and > or
比如:3 and 4 == 4,而 3 or 4 == 3
]
为啥3 and 4 会等于4?
3 or 4 会等于3?(这里是不是因为3是true了,所以就不判断4了?所以就返回了3)
3和4不都是true嘛?
还是判断大小?
好像有一些懂了,但是还想问一下鱼友们
最佳答案
2019-12-30 15:07:45
本帖最后由 wp231957 于 2019-12-30 15:09 编辑

网上摘得:

#1.(0、''、[]、()、{}、None、False) and 任何数等于假
>>> 0 and 2
0
>>> '' and 3
''
>>> [] and 4
[]
>>> () and 5
()
>>> {} and 6
{}
>>> None and 7

>>> False and 8
False

#2.如果表达式中某个值为假,则返回第一个假值
>>> 0 and 1 and 2
0

#3.所有值都为真,则返回最后一个真值
>>> 2 and 3
3
>>> 2 and 3 and 4
4

#现在已经很好理解下面的运算结果了
>>> 0 and 1       #假 and 真    =>假
0
>>> 0 and 0       #假 and 假    =>假
0
>>> 1 and 0       #真 and 假    =>假
0
>>> 1 and 1       #真1 and 真2  =>真2
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-30 15:07:45 | 显示全部楼层    本楼为最佳答案   
本帖最后由 wp231957 于 2019-12-30 15:09 编辑

网上摘得:

#1.(0、''、[]、()、{}、None、False) and 任何数等于假
>>> 0 and 2
0
>>> '' and 3
''
>>> [] and 4
[]
>>> () and 5
()
>>> {} and 6
{}
>>> None and 7

>>> False and 8
False

#2.如果表达式中某个值为假,则返回第一个假值
>>> 0 and 1 and 2
0

#3.所有值都为真,则返回最后一个真值
>>> 2 and 3
3
>>> 2 and 3 and 4
4

#现在已经很好理解下面的运算结果了
>>> 0 and 1       #假 and 真    =>假
0
>>> 0 and 0       #假 and 假    =>假
0
>>> 1 and 0       #真 and 假    =>假
0
>>> 1 and 1       #真1 and 真2  =>真2
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-30 15:14:06 | 显示全部楼层
wp231957 发表于 2019-12-30 15:07
网上摘得:

#1.(0、''、[]、()、{}、None、False) and 任何数等于假

最后那个1 and 1 为啥会返回真2,而不是真1?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-30 15:15:45 | 显示全部楼层
小无趣 发表于 2019-12-30 15:14
最后那个1 and 1 为啥会返回真2,而不是真1?

就是返回后面得1  而不是返回前面得1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-30 15:17:56 | 显示全部楼层
wp231957 发表于 2019-12-30 15:15
就是返回后面得1  而不是返回前面得1

我的意思是,为什么不能返回前面的1?而是后面那个1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-30 15:30:15 From FishC Mobile | 显示全部楼层
小无趣 发表于 2019-12-30 15:17
我的意思是,为什么不能返回前面的1?而是后面那个1

看第三点,全是真则返回后真
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-30 15:32:28 | 显示全部楼层
wp231957 发表于 2019-12-30 15:30
看第三点,全是真则返回后真

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 11:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表