操作符(Python)

in,not in 操作符

in操作符可用于判断給数据是否包含于指定的数字序列、字符串、列表、元祖、集合中、或者判断所給值是否包含于所給字典的键中,not in则相反

注意: not 可对任意比较结果或者任意Boolean表达式中进行否定,且not在比较符中有最高优先级,or的优先级最低,所以 A and not B or C 等同于 (A and (not B)) or C.

如 字典:

>>> "shou" in {1:"i", 2:"shou", 3:"ke"}

False

>>> 1 in {1:"i", 2:"shou", 3:"ke"}

True

说明:针对字典来说,仅可用于判断所给值是否包含在字典的键中,即判断键是否存在

not in

>>> "mark" not in ["i", "shou"]

True

is , is not  操作符

操作符 is和is not 是比较两个对象是否相同

注意:如下

>>> list1 = ["i", "shou", "ke"]

>>> list2 = ["i", "shou", "ke"]

>>> list1 is not list2

True

>>> ["i", "shou", "ke"] is ["i", "shou", "ke"]

False

两个值相等的可变对象,不是同一对象。

 

and、or、not 操作符,分别代表逻辑:与、或、非

and和or就是所谓的短路运算符,参数总是从左到右运算,结果确认时就停止,返回短路运算符的值为最后计算的参数

1.and 运算:如果左边的运算、值或者对象为True,才会对右边求值并返回右侧的计算结果,否则就停止运算并输出表达式结果、值或者对象。

如:

>>> False and True

False

>>> 1 and 9+10

19 #注意输出结果为右侧的值

>>> 5 < 2 and True

False

>>> 0 and True

0

2.or 运算:对or左边的表达式求值,如果左边的运算、值或者对象为True,输出的表达式结果,停止对右边的表达式求值,如果左边的为False,则继续对右边的表达式求值并输出结果。

如:

>>> 5 + 1 or False

#注意,输出是左边的表达式结果

>>> False or 7 + 5

12 #注意,输出是右边的表达式结果

3.not 操作运算

如:

>>> not False

True

>>> not False

True

>>> not 3 < 5

False

 

4.位运算符

~  取反操作符(对数值先加1再取反)

对每一个二进制位+1取反,如果二进制位为1则结果为0,否则为1

|  或操作符(化为两个二进制,有1则为1,其余为0)

两个二进制位,或运算,只要其中有一个位为1则结果为1,否则为0

&  与操作符(化为两个二进制,有0则为0,其余为1)

两个二进制位,与运算,如果两个二进制位相同则与结果等于二进制位自身,否则为0

^  异或操作符(化为两个二进制,两个数相同则为0,其余为1)

两个二进制位,或运算,如果两个二进制位相同则异或结果为0,否则为1

3 --> 二进制:0000 0011

2 --> 二进制:0000 0010

>>> 2 ^ 3

1

说明:

2 ^ 3

  0000 0010

^

  0000 0011

  ---------

  0000 0001 -->十进制:1

>>> 3^2^2

3

>>> 4^5^5

4

说明:一个数对另一个数进行两次异或运算,结果为其本身

>>> 2 | 3

3

说明:

  2 | 3

  0000 0010

|

  0000 0011

  ---------

  0000 0011 -->十进制:3

>>> 2 & 3

2

说明:

  2 & 3

  0000 0010

&

  0000 0011

  ---------

  0000 0010 -->十进制:2

>>> ~3

-4

说明:

  ~3

   0000 0011

~

   --------

   1111 1100

符号位即最高位,为1则表示负数,计算机将其识别为补码(负数以补码形式存在),按补码的计算过程,可求其原码。计算过程:按照求负数补码的逆过程,符号位不变,数值部分最低位减1,然后取反。但是对二进制数来说,先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反再加1的方法。

方法一:

   1111 1100

~

   --------

   1000 0011

+           1

   ----------

   1000 0100

 

方法二:

   1111 1100

-           1

   --------

   1111 1011

~  

   ----------

   1000 0100 --> 十进制: -4

注:

1.符号位为0,表示正数,为1则表示负数;

2.正数的补码为其本身,负数的补码为原码取反后再加1

 

优先级从高到低,依次为~、&、^、|

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值