第二章--第四节:运算符(二)

零、位运算符

位运算符就是将数字转换为二进制进行计算,位运算符包括:按位与(&)按位或(|)按位异或(^)按位取反(~)左移动(<<)右移动(>>)。解释见下表:
假设 a=10 ,b=12

运算符 名称 说明 例子
& 按位与 如果参与运算的两个变量,相应位都是1,则该位的结果位1,反之位0 a&b 结果为8
| 按位或 如果对应的二个二进位有一个为1时,结果位就为1 a
^ 按位异或 对应的二进位相异时,结果为1 a^b 结果为6
~ 按位取反 对数据的每个二进制位取反,即把1变为0,把0变为1 ~a 输出结果为 -11
<< 左移动 运算数的各二进位全部左移若干位,高位丢弃,低位补0 a<<11 结果为20480
>> 右移动 运算数的各二进位全部右移若干位 a>>11 结果为0

一、成员运算符

成员运算符主要是用于在序列中查找是否包含指定的值。成员运算符包含:innot in。解释见下表:
假设a=10,b=[1,2,3,4,5,6,7,8,9,0]

运算符 说明 例子
in 查找序列中是否存在指定的变量 a in b 结果为False
not in 查找序列中是否不存在指定的变量 a not in b 结果为True

二、身份运算符

用于检查两个值(或变量)是否位于存储器的同一部分。(两个变量相等,并不是说完全一样。)身份运算符包含:isis not。解释如下表:
假设a=1,b=1,c=[0,1,2],d=[0,1,2],e=‘hello’,f=‘hello’

运算符 说明 例子
is 是否引用的同一个对象 a is b结果为True,c is d 结果为False,e is f 结果为True
is not 是否引用的不是同一个对象 a is b结果为False,c is d 结果为True,e is f 结果为False

三、运算符优先级

运算符优先级见下表:
括号可以提高运算符优先级

运算符 解释
** 幂运算(优先级最高)
按位翻转, 一元加号和减号
* / % // 乘,除,取模和取整除
± 加法减法
>> << 右移,左移运
& 按位与
^ | 按位异或,按位或
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
and or not 逻辑运算符

四、小结

今天所讲的运算符在开发中也是经常使用的,需要牢记。

觉得不错打赏一下吧,金额随意!

原文地址:https://www.cnblogs.com/gangzhucoll/p/12778242.html