鱼C论坛

 找回密码
 立即注册
查看: 4161|回复: 15

[已解决]第6讲课后作业短路逻辑不理解

[复制链接]
发表于 2016-3-10 22:04:20 | 显示全部楼层 |阅读模式

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

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

x
我看了第四讲的 短路逻辑还是不明白为什么 3 and 4 ==4   ???

短路逻辑

短路逻辑
最佳答案
2016-3-10 22:34:24
clark0078 发表于 2016-3-10 22:24
3 代表 true吗? 4代表false? 还是?

or只需判断前面一个为True就整体为True,所以它的值就是前面的3
and需判断两个都为True猜整体为True,所以它的值是后面那个4
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-3-10 22:07:32 | 显示全部楼层
意思就是, and需要检查两边是否同时为true, 而or只有一个就行了, 这里只是体现or的特点, 不必太纠结, 不然和C语言没区别了, Python提倡的是快速开发
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2016-3-10 22:22:00 | 显示全部楼层
谢谢,那3 and 4 ==4 是什么意思?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-10 22:24:55 | 显示全部楼层
3 代表 true吗? 4代表false? 还是?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-10 22:34:24 | 显示全部楼层    本楼为最佳答案   
clark0078 发表于 2016-3-10 22:24
3 代表 true吗? 4代表false? 还是?

or只需判断前面一个为True就整体为True,所以它的值就是前面的3
and需判断两个都为True猜整体为True,所以它的值是后面那个4
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-3-10 22:42:00 | 显示全部楼层
冬雪雪冬 发表于 2016-3-10 22:34
or只需判断前面一个为True就整体为True,所以它的值就是前面的3
and需判断两个都为True猜整体为True,所 ...

您的意思,3就是代表true ,4代表false是吧。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-10 22:47:04 | 显示全部楼层
clark0078 发表于 2016-3-10 22:42
您的意思,3就是代表true ,4代表false是吧。

0代表False,非零的都代表True

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
东几 + 5 + 5 + 3

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 3 反对 0

使用道具 举报

 楼主| 发表于 2016-3-10 22:49:33 | 显示全部楼层
谢谢,理解了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-10 22:49:52 | 显示全部楼层
X and y   x为真,y为真 返回y的值  x 为假返回0;
X or y    x,y为真,返回x的值  x,y都为假,返回0.
0 代表 false 非0 代表true
3 and 4 3 和 4 都是 真 所以返回 4
3 or 4  都为真 所以返回 3  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2016-3-10 23:05:55 | 显示全部楼层
旺仔sama 发表于 2016-3-10 22:49
X and y   x为真,y为真 返回y的值  x 为假返回0;
X or y    x,y为真,返回x的值  x,y都为假,返回0.
0 ...

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

使用道具 举报

发表于 2016-3-10 23:08:51 | 显示全部楼层

共勉  我也正在学习~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-10 23:17:21 | 显示全部楼层
那 0 or 0 or 4 or 6 or 9 为什么等于4? 是不是因为前面一个 0 or 0 都是false所以返回是0 。然后0 or 4 后面一个是true所以返回是4.   4 or 6 是因为都是true所以直接是否返回4. 对不?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-10 23:51:11 | 显示全部楼层
9#说的对,
X and Y,如果X为真,那么直接返回Y的值;如果X为假,则返回0,逻辑运算里面0=False。
X or Y,如果X为假,则返回0;如果X为真,则返回X
短路逻辑就是为了提高运算速度,因为第一个值已经决定了逻辑运算的结果。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-4 10:51:37 | 显示全部楼层
clark0078 发表于 2016-3-10 23:17
那 0 or 0 or 4 or 6 or 9 为什么等于4? 是不是因为前面一个 0 or 0 都是false所以返回是0 。然后0 or 4  ...

允许我挖个老帖0.0
终于看懂了……
以及,参考http://www.cnblogs.com/an9wer/p/5475551.html
在Python中,None、任何数值类型中的0、空字符串“”、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了  __ nonzero __ () 或 __ len __ () 方法且方法返回 0 或False,则其实例也被当作False,其他对象均为True。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-16 10:02:49 | 显示全部楼层
冬雪雪冬 发表于 2016-3-10 22:47
0代表False,非零的都代表True

豁然开朗,茅塞顿开
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-19 21:50:15 | 显示全部楼层
冬雪雪冬 发表于 2016-3-10 22:47
0代表False,非零的都代表True

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-20 04:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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