鱼C论坛

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

[已解决]逻辑运算符的小问题

[复制链接]
发表于 2018-3-10 21:36:39 | 显示全部楼层 |阅读模式

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

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

x
>>> 3 and 4
4
>>> 2 and 4
4
>>> 2 and 4 and 4
4
这个是什么情况,没整明白~~~


>>> 0 and 4
0
这个跟上面的又有啥区别~

>>> 1 or 1
1
>>> 1 or 2
1
>>> 1 or 2 or 3
1
>>> 2 or 1
2
>>> 3 or 2 or 1
3
这个返回的也没弄明白~~
最佳答案
2018-3-10 21:45:42
这是短路逻辑,
对 and 来说: 只有运算到最后才能知道整体是True,如果都为True,则会运行到最后,否则只要碰到第一个False就退出运算。
而 or 的话只要有一个为True那就整体为True,所以碰到第一个True就退出运算,而如果都为False,则会运行到最后。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-10 21:45:42 | 显示全部楼层    本楼为最佳答案   
这是短路逻辑,
对 and 来说: 只有运算到最后才能知道整体是True,如果都为True,则会运行到最后,否则只要碰到第一个False就退出运算。
而 or 的话只要有一个为True那就整体为True,所以碰到第一个True就退出运算,而如果都为False,则会运行到最后。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-10 21:46:24 | 显示全部楼层

短路逻辑
表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 。

表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算。

若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-10 22:08:45 | 显示全部楼层
本帖最后由 tifa2018 于 2018-3-10 22:11 编辑

QQ截图20180310220821.png

在 Python 看来,只有以下内容会被看作假(注意冒号括号里边啥都没有,连空格都不要有!):False None 0 "" '' () [] {}

其他一切都被解释为真!

所以0 是False,返回0
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-10 22:13:56 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-3-10 21:45
这是短路逻辑,
对 and 来说: 只有运算到最后才能知道整体是True,如果都为True,则会运行到最后,否则只 ...

and如果都是真,那么运算到最后,返回的是最后的值~!!对吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-10 22:18:08 | 显示全部楼层
煮酒小贱 发表于 2018-3-10 22:13
and如果都是真,那么运算到最后,返回的是最后的值~!!对吧

在哪里退出运算就返回哪里的值。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-10 22:20:12 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-3-10 22:18
在哪里退出运算就返回哪里的值。

明白了~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-8 10:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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