哥白尼 发表于 2020-8-5 20:24:10

操作符

刚学习几天 操作符一直都不懂哪个大佬可以给我讲讲 操作符一共有几种每一种的操作符都包含什么还要他们的优先级是什么 谢谢
not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9   还有这道题到底什么意思 答案又是什么谢谢了我基础太差了 你们谁有自己做的基础的一些笔记 可以发给我 最好是通俗易懂的 毕竟我是小白谢谢 2746612673@qq.com

xiaosi4081 发表于 2020-8-5 20:25:32

本帖最后由 xiaosi4081 于 2020-8-5 20:34 编辑

a and b
a和b必须都为True,这个才能成真

a or b
a和b其中一个为True,这个就能成真

not a
假如a为True,这个就是反过来的:false
假如a为false,这个就是反过来的:true

Hello. 发表于 2020-8-5 20:33:09


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

逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。
这么说可能比较“高深”,举个例子,表达式 x and y,需要 x 和 y 两个变量同时为真(True)的时候,结果才为真。因此,如果当 x 变量得知是假(False)的时候,表达式就会立刻返回 False,而不用去管 y 变量的值。

哥白尼 发表于 2020-8-5 20:38:52

Hello. 发表于 2020-8-5 20:33
not or and 的优先级是不同的:not > and > or

我们按照优先级给它们加上括号:(not 1) or (0 and 1)...

我还是没懂 为什么 3 and 4 会是43 or 4==3这是怎么算的

Hello. 发表于 2020-8-5 20:41:01

哥白尼 发表于 2020-8-5 20:38
我还是没懂 为什么 3 and 4 会是43 or 4==3这是怎么算的

这个叫短路逻辑
短路逻辑规则如下:
表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 。若 or 的左侧逻辑值为 False ,则输出or右侧的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果
表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算。若 and 的左侧逻辑值为 True,则输出其后的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果
若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑。
注意:
1、在Python中and的优先级是大于or的,而且and和or都是会返回值的并且不转换为True和False。当not和and及or在一起运算时,优先级为是not>and>or
2、在Python中,None、任何数值类型中的0、空字符串“”、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了 __ len __ () 方法且方法返回 0 或False,则其实例也被当作False,其他对象均为True。


简单点说就是 or 只要判断到 True 就返回该处的值,and 只要判断到False 就返回 False ,当 and 两边都为 True 时,返回右边的数


帮到你,不要忘了设置最佳{:7_123:}

哥白尼 发表于 2020-8-5 20:49:13

Hello. 发表于 2020-8-5 20:41
这个叫短路逻辑




不好意思我还是不大懂 像 3and4   and两边也没有什么比较运算符 只是单纯的两个数字 为什么3 and 4 ==4呢 像 3or4也是一样两边只是单纯的数字 如果算出结果

Hello. 发表于 2020-8-5 20:51:53

哥白尼 发表于 2020-8-5 20:49
不好意思我还是不大懂 像 3and4   and两边也没有什么比较运算符 只是单纯的两个数字 为什么3 and 4 ==4 ...

3 and 4 两边判断都是 true,因为都不为零对吧,所以返回右边的数,也就是 4

3 or 4,or 是判断到 true 就返回右边的数,也就是 3
你把楼上我的话再理解一遍

哥白尼 发表于 2020-8-5 20:57:13

Hello. 发表于 2020-8-5 20:51
3 and 4 两边判断都是 true,因为都不为零对吧,所以返回右边的数,也就是 4

3 or 4,or 是判断到 t ...

奥明白了 还有 像一元操作符二元操作符 当-作为负号使用就是一元操作符 当作为减号来使用 如3-2这时候是不是就是二元操作符了

Hello. 发表于 2020-8-5 20:58:52

哥白尼 发表于 2020-8-5 20:57
奥明白了 还有 像一元操作符二元操作符 当-作为负号使用就是一元操作符 当作为减号来使用 如3-2这时候 ...

正确{:7_139:}
页: [1]
查看完整版本: 操作符