窝在家里写程序 发表于 2020-5-22 18:09:28

求大神解答!!!

4. 请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9

如果你的回答是 0,那么小甲鱼很开心你中招了!
答案是:4

not or and 的优先级是不同的: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
== 4

为啥是 4?

大家还记得第四讲作业提到的“短路逻辑”吗?3 and 4 == 4,而 3 or 4 == 3。
所以答案是:4



不懂notorand   分别表示什么?{:5_95:}

栗粒粒 发表于 2020-5-22 18:12:36

not表示非,not1就是0,or表示或者,and表示和

悠悠2264 发表于 2020-5-22 18:13:54

本帖最后由 悠悠2264 于 2020-5-22 18:20 编辑

not:非,如not 0表示非0,如not 0则返回True(值<=0是false,>0是true)
or:或者,如a == 1 or b==2,表示a=1或b=2则返回true
and:和,如a ==0 and b == 1表示a=0并且b=1则返回true

qiuyouzhi 发表于 2020-5-22 18:14:23

not表示非,比如not 1,就是not True,True取反就是False,结果就是False。
and表示且,如果两边都为True才是True,其他时候都是False
or表示或,只要有一遍是True,结果就是True。
优先级是:
not > and > or

Twilight6 发表于 2020-5-22 18:20:31

本帖最后由 Twilight6 于 2020-5-22 18:22 编辑

(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
== 4
为啥是 4?
短路逻辑:只要 or 前面一个条件为True,就不在判断后面的 True 还是 False
所以 这里一直判断到 4 时候条件为 True 后面的就不在判断了

不懂notorand   分别表示什么?
not 非   简单理解 就是 把 True 和 False 翻转若原条件为 True 加上 not 为 False
or 或    或语句中 只要有一个条件为True 则 or 条件语句就判断为 True
and 和 只有两个都为True 时候 条件才成立

窝在家里写程序 发表于 2020-5-22 18:23:36

Twilight6 发表于 2020-5-22 18:20
短路逻辑:只要 or 前面一个条件为True,就不在判断后面的 True 还是 False
所以 这里一直判断到 4 时候 ...

这个我晓得   只是不知道为啥会等于4

Twilight6 发表于 2020-5-22 18:23:57

窝在家里写程序 发表于 2020-5-22 18:23
这个我晓得   只是不知道为啥会等于4

短路逻辑呀 我不是写了嘛

窝在家里写程序 发表于 2020-5-22 18:24:35

qiuyouzhi 发表于 2020-5-22 18:14
not表示非,比如not 1,就是not True,True取反就是False,结果就是False。
and表示且,如果两边都为True ...

这个我晓得   只是不知道为啥会等于4

qiuyouzhi 发表于 2020-5-22 18:25:29

窝在家里写程序 发表于 2020-5-22 18:24
这个我晓得   只是不知道为啥会等于4

and如果为True,返回前者(不为布尔值的话)
or如果为True,返回后者(不为布尔值的话)
你自己算一算

窝在家里写程序 发表于 2020-5-22 21:18:28

qiuyouzhi 发表于 2020-5-22 18:25
and如果为True,返回前者(不为布尔值的话)
or如果为True,返回后者(不为布尔值的话)
你自己算一算

会了嘿嘿
页: [1]
查看完整版本: 求大神解答!!!