导航:首页 > 编程语言 > python逻辑运算符怎么计算

python逻辑运算符怎么计算

发布时间:2023-10-04 22:18:57

python中and、or和not 三个逻辑运算符,一直理解不了,求帮助!

‘and’、‘or’和‘not’的优先级是not>and>or

㈡ Python教程:第19篇 逻辑运算符

我们在高一时学习过命题的逻辑运算:与、或、非,在计算机科学中,其运算规则也是类似的(基本原理相同,但操作数与返回结果有所不同),Python也不例外。

在Python中,与用and、或用or、非用not表示。逻辑运算符一般用于操作返回值为bool类型的表达式,以表达式的值True(真)和False(假)为例。其运算规则总览如下:

需要特别注意的是,在Python中,虽然逻辑运算符的操作数一般是运算结果为逻辑值的表达式,但也可以是运算结果为数值、字符串、元组、列表、集合、字典等类型的表达式。返回值也不一定是逻辑(bool)类型。而有些教程错误地称只能操作bool类型的表达式以及始终返回bool类型。

我们可以用两个not查看某种数据等价的逻辑值,下面是一些常见数据类型的等价规则:

一、数值除了0视为False,其余数值(包括小数、负数、复数)均视为True:

二、字符串除了空字符串视为False外,其余均视为True(包括空格、制表、换行、回车等空白符,也包括字符串'False'):

三、对于元组、列表、集合、字典也是如此,空的视为False,非空的均视为True,即使其中只有一个值为False或0的数据:

有一种情况容易产生误解,就是使用小括号将False包围起来,这其实也是表示bool值,而不是元组,元组是使用小括号包围的数据列表,但是如果只有一个成员,数据后面要加一个逗号,正如上述示例中所示那样,下面的示例显示了小括号包围的False的数据类型:

四、对于一个类也是如此,非空类视为True(注:无法创建什么都不包含的空类):

五、None视为False:

总结一下就是: 数值0、空字符串、空元组、空列表、空集合、空字典以及None,均视为逻辑值False,其余均视为True。

需要注意的是,逻辑运算符的返回值不一定是bool类型。

了解了非bool类型的操作数等价的逻辑值之后,还需要了解逻辑运算符的完全运算规则,才能得知具体会返回什么值。

and为逻辑与(也称逻辑且),其使用语法如下:

表达式A and 表达式B

其中操作数表达式A和表达式B一般均为逻辑值。但也可以是数值、字符串、元组、列表、集合、字典、对象等类型。

其运算通用规则为: 如果 表达式A 的运算结果等价于False,返回其运算结果,不再计算表达式B。否则返回 表达式B 的运算结果。

对于最常用的两个操作数均为逻辑值的情况,只有当两个操作数均为True的情况下为True,其余情况均为False,以下是所有四种可能情况的运行示例:

其中两个操作数也都可以是非逻辑值。

当第1个操作数结果等价于False时,比如False、0、None、空字符串、空元组、空列表、空集合、空字典等,整个逻辑表达式返回第1个操作数,注意,返回的是操作数的原始值,而不是等价值False,下面是运行示例(None表示什么也没有,所以没有输出。set()返回空集合):

当第1个操作数等价于True时(非数值0、非空字符串等都等价于True),则不管第2个表达式的返回值是什么,都将返回第2个值,当然这时第2个表达式不能有语法错误:

or为逻辑或,其使用格式如下:

表达式A or 表达式B

其中操作数表达式A和表达式B与and中的操作数含义相同。

其运算通用规则为: 如果 表达式A 的运算结果等价于True,返回其运算结果,不再计算表达式B。否则返回 表达式B 的运算结果。 其与and的区别在于,or当表达式A为True则返回表达式A,and当其为False时返回表达式A。

以上面and的示例为模板,可以看到,or与and的返回值正好相反。

与and类似,当表达式A相当于True时,表达式B也不会计算:

下面是常见的两个操作数均为逻辑值的情况,or运算符的四种可能情况的运行示例(除非两个值都是False时返回False,其余情况返回True):

not为逻辑非,其使用格式如下:

not 表达式

其运算规则为: 当 表达式 的运算结果为False、0、None、空字符串、空元组、空列表、空集合、空字典时,返回True。其余情况均返回False。

下面是一些不同数据类型的运算示例:

与and和or不同的是,not的返回值始终是bool类型,即只有True和False两种可能的取值。

所以,可以使用not not 表达式来查看一个非逻辑值是等价True还是False,正如上文非逻辑操作数等价的逻辑值中所示的那样。

当然,not最常用的用法还是逆转逻辑值,下面是两种可能情况的运行示例:

逻辑运算符优先级not>and>or。

下面的示例证明and先于or运算:

下面的示例证明not先于or运算:

下面的示例证明not先于and运算:

另外,所有的逻辑运算符都比元组逗号分隔符的优先级要高,以and为例,比如下面是一个元组:

下面的例子中:

先计算了3 and 4,然后再组合成了元组,相当于:

而不是:

not与or的优先级也比其要高,下面是示例:

所以虽然元组有时可以省略小括号,但在与逻辑运算符运算时,元组请始终使用小括号。

这篇文章的整理与编写花费了我近十小时时间,从上午写到晚上。是我目前最具匠心的文章,如果说以前我的文章只适合初学者,偶尔超水平发挥才适合中级学者,那么这篇文章我感觉对高水平人员也有重要的参考意义。

就我目前所知,我所写的教程,在全网找不到第二个比它更优秀的了,当然,每个人心中都有一杆称,不同读者可能也有不同的际遇,我能做的只是做好自己。

所以,如果你觉得此文不错,可以分享给你身边的朋友、同学、同事、同乡,世界很大也很小,很多东西,初见只能依靠缘分。而再见就需要你的主动了,缘分天注定,努力亦可改变命运。

Python教程:第11篇 变量赋值

Python教程:第17篇 比较运算符

Python教程:第18篇 算术运算符

㈢ python中 *= 是什么意思

1、两个值相加,然后返回值给符号左侧的变量

举例如下:

>>> a=1

>>> b=3

>>> a+=b(或者a+=3)

>>> a

4

2、用于字符串连接(变量值带引号,数据类型为字符串)

>>> a='1'

>>> b='2'

>>> a+=b

>>> a

'12'

8、运算符优先级

以下所列优先级顺序按照从低到高优先级的顺序;同行为相同优先级。

Lambda #运算优先级最低

逻辑运算符: or

逻辑运算符: and

逻辑运算符:not

成员测试: in, not in

同一性测试: is, is not

比较: <,<=,>,>=,!=,==

按位或: |

按位异或: ^

按位与: &

移位: << ,>>

加法与减法: + ,-

乘法、除法与取余: *, / ,%

正负号: +x,-x

具有相同优先级的运算符将从左至右的方式依次进行,用小括号()可以改变运算顺序。

参考资料来源:网络-Python

㈣ Python逻辑运算符and

and和or表达式的值是第一个能决定整个表达式是否成立的那个操作数的值。举例:
3 and 4:第一个操作数3为真,但不能保证and成立,还要看第二个操作数4;4也为真,此时可以确定and一定成立,因此这个表达式的值是4。
'hello' and [] and 'world':第一个操作数'hello'为真,但不能保证and成立;第二个操作数[]为假,此时可以确定and一定不成立,因此这个表达式的值是[]。
'a' or 'b' or 'c' or 'd':第一个操作数a为真,此时可以确定or一定成立,因此这个表达式的值是'a'。
1 and 2 or 3 and 4:and的优先级高于or,因此先求左边的1 and 2,这个子表达式的值是2,2为真,可以确定or一定成立,因此整个表达式的值是2。

㈤ 我们学习过的python中的逻辑运算符有哪些它们的运算规则如何

and :布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。

or :布尔"或" - 如果 x 是非 0,它返回 x 的计算值,否则它返回 y 的计算值。

not :布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

需要详细讲解或实例请追问。

顺便推荐两个自学网站菜鸟教程 - 学的不仅是技术,更是梦想!W3school在线教程

内有丰富的编程基础知识。比如Python 逻辑运算符 | 菜鸟教程Python 运算符 - W3school

比在网上提问等人回答快多了也准确多了,对吧?

㈥ Python中+=是什么意思

1、两个值相加,然后返回值给符号左侧的变量

举例如下:

>>> a=1

>>> b=3

>>> a+=b(或者a+=3)

>>> a

4

2、用于字符串连接(变量值带引号,数据类型为字符串)

>>> a='1'

>>> b='2'

>>> a+=b

>>> a

'12'

8、运算符优先级

以下所列优先级顺序按照从低到高优先级的顺序;同行为相同优先级。

Lambda #运算优先级最低

逻辑运算符: or

逻辑运算符: and

逻辑运算符:not

成员测试: in, not in

同一性测试: is, is not

比较: <,<=,>,>=,!=,==

按位或: |

按位异或: ^

按位与: &

移位: << ,>>

加法与减法: + ,-

乘法、除法与取余: *, / ,%

正负号: +x,-x

具有相同优先级的运算符将从左至右的方式依次进行,用小括号()可以改变运算顺序。

参考资料来源:网络-Python

㈦ Python中的逻辑运算符有哪些呢

关键是一个变量/值是“相当于”True还是False。
None、False、空字符串""、0、空列表[]、空字典{}、空元组(),都相当于False。其它的都相当于True。

先说 A or B 。
如果A相当于True,那么返回A。否则,返回B。
所以,如果A和B都是False,那么A and B也是False (False or False == False)。

除了做布尔值的判断,C = A or B 这种写法,常用于不确定A是否为空值时,把B作为候补来赋值给C。

A and B相反。如果A相当于True,那么返回B。否则,返回A。
所以,只有A和B都是True时,A and B才是True (True and True == True)。

㈧ python中逻辑运输符在数字间是怎么运算的

and 是短路运算符,python中,非0值都代表逻辑真,逻辑运算时返回最后运算的结果。例如: 5 and 2 ,返回最后运算的2。 2 and 5,返回5。 5 and 0,返回0。 0 and 5,还是返回0。因为0代表假,and 不再进行运算了,直接被短路,返回0

阅读全文

与python逻辑运算符怎么计算相关的资料

热点内容
解压车贷后gps怎么找 浏览:350
源码数据库怎么配备 浏览:136
知乎程序员小灰 浏览:574
新概念英语第一册书pdf 浏览:5
安卓ans文件怎么打开 浏览:893
选择题改进分治算法的方法有 浏览:108
下载云服务器有什么好处 浏览:23
江苏机架式服务器云主机 浏览:411
linux补全命令 浏览:514
我要打命令 浏览:970
御人pdf 浏览:390
小米手机怎么发送文件夹用qq 浏览:917
找人一起玩用什么app好 浏览:398
程序员最烦的4件事 浏览:485
怎么查ice服务器 浏览:760
excel加密不可以复制 浏览:308
py编译器的键盘输入在哪 浏览:226
云服务器和深度学习 浏览:102
交叉编译标准输出 浏览:24
如何启用DNS服务器 浏览:736