为什么两个值的AND运算符会给出最后一个值?

原学程将引见为何二个值的AND运算符会给出最初1个值?的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

为什么两个值的AND运算符会给出最后一个值? 教程 第1张

成绩描写

我一向在对于Python操纵符停止1些修正,碰到了1些我没有肯定的工作。

假如我对于二个整数履行按位运算(&,|),我将绝不奇异天取得它们的按位值

寄义:

>>> a = 一一
>>> b = 三
>>> a & b
三

这是由于按位AND对于这些数字的两退制表现履行AND。
然则,假如我应用内置的AND运算符,我将取得第两个变质,而没有斟酌它的典型:

>>> b and a
一一

>>> 'b' and 'a'
'a'

为何会如许?

推举谜底

逻辑运算符对于对于象的停止操纵。每一个对于象皆有真值,除非它有1个被显式重写以激发毛病的__bool__办法。a and b(逻辑)以及a & b(按位)之间的重要差别在于,前者实用于所有对于象,尔后者仅实用于支撑按位运算的数值典型。

Python的逻辑运算符专门用于前往前次供值的对于象的成果:

    a and b:前往Falsya或者b(假如a为True)

    a or b:前往TRUTYa或者b(假如a为FALSE)

去自tutorial:

布我运算符and以及or是所谓的短路运算符:从左到右盘算它们的参数,1旦肯定成果,盘算便停滞。比方,假如A以及C为真,但是B为假,则A and B and C没有盘算表白式C。当用作惯例值而没有是布我值时,短路运算符的前往值是最初盘算的参数。

此属性半习用天用于在拜访值之前检讨值。比方,假如列表必需包括元素,则不妨履行相似

的操纵

if x and x[0] == value:
 # ...

这没有会激发毛病,由于假如x为Falsy(空),and表白式将前往x而没有是x[0] == value

佳了闭于为何二个值的AND运算符会给出最初1个值?的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。