鱼C论坛

 找回密码
 立即注册
查看: 2431|回复: 4

[已解决]你信吗?据说到目前为止还没有人能够解释清楚not and or,有例子为证

[复制链接]
发表于 2017-9-8 17:47:27 | 显示全部楼层 |阅读模式

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

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

x
这是小甲鱼老师第6讲 第4 题。
not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
不跑程序,口算这个结果。 我自己算的为9 我放在qq群里,大概10个人有6种答案。
======================================================
这是我在知乎上截取的关于 and or 的解释:

对于and操作符:
只要左边的表达式为真,整个表达式返回的值是右边表达式的值,否则,返回左边表达式的值
对于or操作符:
只要两边的表达式为真,整个表达式的结果是左边表达式的值。
如果是一真一假,返回真值表达式的值
如果两个都是假,比如空值和0,返回的是右边的值。(空值或0)

下面是程序里面的结果:

>>> not 1 or 0
0
>>> not 1 or 0 and 1
0
>>> not 1 or 0 and 1 or 3
3
>>> not 1 or 0 and 1 or 3 and 4
4
>>> not 1 or 0 and 1 or 3 and 4 or 5
4
>>> not 1 or 0 and 1 or 3 and 4 or 5 and 6
4 ------------从这里懵逼了,这个相当于4 and 6 按照知乎解释不应该是6 吗??????????
>>> not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7
4
>>> not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8
4
>>> not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
4
最佳答案
2017-9-8 18:37:41
本帖最后由 ba21 于 2017-9-8 19:05 编辑

and :
x and y 返回的结果是决定表达式结果的值。如果 x 为真,则 y 决定结果,返回 y ;如果 x 为假,x 决定了结果为假,返回 x。
or :
x or y 返回的结果是决定表达式结果的值。如果 x 为真,则 x 决定结果,返回 x ;如果 x 为假,y 决定了结果,返回 y。
not :
返回表达式结果的“相反的值”。如果表达式结果为真,则返回false;如果表达式结果为假,则返回true。

还有优先级:
运算符优先级.png

2017-09-08_190457.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-9-8 18:14:30 | 显示全部楼层
OK, 刚看到有优先级 说是 not > and > or
那我们把这个题括起来变成了:
(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
0 or 0 or 4 or 6 or 9

那么按照or的规则:
只要两边的表达式为真,整个表达式的结果是左边表达式的值。
如果是一真一假,返回真值表达式的值
如果两个都是假,比如空值和0,返回的是右边的值。(空值或0)

这尼玛应该是9啊? 结果是4,跟哪儿说理去?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-8 18:26:02 From FishC Mobile | 显示全部楼层
你的知乎的解释就不对,是你自己没弄明白
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-8 18:37:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 ba21 于 2017-9-8 19:05 编辑

and :
x and y 返回的结果是决定表达式结果的值。如果 x 为真,则 y 决定结果,返回 y ;如果 x 为假,x 决定了结果为假,返回 x。
or :
x or y 返回的结果是决定表达式结果的值。如果 x 为真,则 x 决定结果,返回 x ;如果 x 为假,y 决定了结果,返回 y。
not :
返回表达式结果的“相反的值”。如果表达式结果为真,则返回false;如果表达式结果为假,则返回true。

还有优先级:
运算符优先级.png

2017-09-08_190457.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-11 20:39:55 | 显示全部楼层
ba21 发表于 2017-9-8 18:37
and :
x and y 返回的结果是决定表达式结果的值。如果 x 为真,则 y 决定结果,返回 y ;如果 x 为假,x  ...

谢谢 ba21
我现在清楚了,牢记你的总结
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-2 05:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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