Python 运算符和表达式基础二
一、位运算符和位表达式
在Python语言中,使用位运算符可以操作二进制数据,位运算符可以直接操作整数类型的位。
在Python语言中一共有6个位运算符,假设变量a的值为60,变量b的值为13,则下表展示了各个位运算的计算过程:
运算符 | 功能 | 运算结果 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b)的输出结果为12,二进制解释:0000 1100 |
I | 按位或运算符:只要对应的两个二进位有一个为1时,结果位就为1 | (a I b) 的输出结果为 61,二进制解释:0011 1101 |
^ | 按位异或运算符:当两个二进位相异时,结果为1 | (a ^ b)的输出结果为 49,二进制解释:0011 0001 |
~ | 取反运算符:对数据的每个二进制位取反,即把1变为0,0改为1 | (~a) 的输出结果为 -61,二进制解释:1100 0011 |
<< | 运左移动算符:运算数的个二进制位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0 | a << 2 的输出结果为240,二进制解释:1111 0000 |
>> | 右移动运算符:把“>>”左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 | a >> 2 的输出结果为15,二进制解释:0000 1111 |
二、逻辑运算符和逻辑表达式
在Python语言中,逻辑运算就是将变量用逻辑运算符连接起来,并对其进行求值的运算过程。
Python语言不像C、Java等编程语言,可以使用&、|、!,更加不能使用简单逻辑与(&&)、简单逻辑或(||)等简单逻辑运算符。它只有3种逻辑运算符,假设变量a的值为10,变量b的值为20,则下表展示了逻辑运算的计算过程::
运算符 | 功能 | 运算结果 |
---|---|---|
and | 布尔“与” 运算符:如果x为False, x and y 返回 False, 否则它返回y的计算值 | (a and b)返回20 |
or | 布尔“或” 运算符:如果x是非0,它返回x的值,否则它返回y的计算值 | (a or b) 返回10 |
not | 布尔“非” 运算符:如果x为True,返回 False。 如果x为False, 它返回True | not ( a and b) 返回False |
三、成员运算符与成员表达式
在Python语言中,还可以使用成员运算符。通过使用成员运算符,可以测试实例中包含的一系列成员,包括字符串、列表或元组。
成员运算符比逻辑运算符要简单一点,能够验证给定的值(变量)在指定的范围里是否存在。只有两个成员分别是:in和 not in。
运算符 | 功能 | 运算结果 |
---|---|---|
in | 如果在指定的序列中找到值则返回True,否则返回False | x在y序列中,如果x在y序列中则返回返回True |
not in | 如果在指定的序列中没有找到值则返回True,否则返回False | x不在y序列中,如果x不在y序列中则返回返回True |
四、身份运算符与身份表达式
在Python语言中,身份运算符的功能是比较两个对象是否是同一个对象,这和比较运算符中的“==”来比较两个对象的值是否相等有所区别。Python中有两个身份运算符,分别是is 和 is not。
在Python语言中身份运算符“is”是通过这个id来进行判断的。如果id一样就返回True,否则返回False。请看下面的实例:
var1 = [1,2,3]
var2 = [1,2,3]
print( var1 == var2 ) #比较运算符
print(var1 is var2 ) #身份运算符
print(var1 is not var2 ) #身份运算符
输出结果是:
五、运算符的优先级
Python 中运算符的运算规则是,优先级高的运算符先执行,优先级低的运算符后执行,同一优先级的运算符按照从左到右的顺序进行。需要注意的是,Python 语言中大部分运算符都是从左向右执行的,只有单目运算符(例如 not 逻辑非运算符)、赋值运算符和三目运算符例外,它们是从右向左执行的。
运算符 | 描述(从上至下优先级降低 |
---|---|
** | 指数 |
~ + - | 按位翻转,正号和负号 |
* / % // | 乘,除,取模和取整除 |
+ - | 加法,减法 |
>> << | 右移,左移运算 |
& | 位"AND" |
^ I | 位运算 |
<= < > >= == != | 比较运算符 |
= %= /= -= += *= ** | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |