Python非逻辑运算符
在Python中,我们经常需要对变量进行判断和比较。除了常见的逻辑运算符(如and
、or
、not
)之外,Python还提供了一些非逻辑运算符,用于对变量进行非逻辑的操作。这些非逻辑运算符包括成员运算符、身份运算符和位运算符。
1. 成员运算符
成员运算符用于判断一个值是否在某个序列中,包括字符串、列表、元组、字典和集合等。Python提供了两个成员运算符:in
和not in
。
in
:如果值在序列中存在,返回True
;否则返回False
。not in
:如果值在序列中不存在,返回True
;否则返回False
。
下面是一个使用成员运算符的例子:
fruits = ['apple', 'banana', 'orange']
if 'apple' in fruits:
print('I like apples!')
if 'watermelon' not in fruits:
print('I don\'t like watermelons!')
输出结果为:
I like apples!
I don't like watermelons!
2. 身份运算符
身份运算符用于比较两个对象的内存地址,判断它们是否引用同一个对象。Python提供了两个身份运算符:is
和is not
。
is
:如果两个对象引用同一个对象,返回True
;否则返回False
。is not
:如果两个对象引用不同的对象,返回True
;否则返回False
。
下面是一个使用身份运算符的例子:
a = [1, 2, 3]
b = a
c = [1, 2, 3]
if a is b:
print('a and b refer to the same object!')
if a is not c:
print('a and c refer to different objects!')
输出结果为:
a and b refer to the same object!
a and c refer to different objects!
3. 位运算符
位运算符用于对整数的二进制表示进行操作。Python提供了六个位运算符:&
、|
、^
、~
、<<
和>>
。
&
:按位与运算,对每一位进行与操作,只有两个操作数对应位都为1时,结果才为1。|
:按位或运算,对每一位进行或操作,只有两个操作数对应位都为0时,结果才为0。^
:按位异或运算,对每一位进行异或操作,当两个操作数对应位相同时,结果为0;不同时,结果为1。~
:按位取反运算,对每一位进行取反操作,0变为1,1变为0。<<
:左移运算,将一个数的二进制表示向左移动指定的位数,右边空出的位用0填充。>>
:右移运算,将一个数的二进制表示向右移动指定的位数,左边空出的位用0或者符号位填充。
下面是一个使用位运算符的例子:
a = 60
b = 13
# 60的二进制表示为 0011 1100
# 13的二进制表示为 0000 1101
c = a & b # 二进制按位与运算,结果为 0000 1100
d = a | b # 二进制按位或运算,结果为 0011 1101
e = a ^ b # 二进制按位异或运算,结果为 0011 0001
f = ~a # 二进制按位取反运算,结果为 1100 0011
g = a << 2 # 二进制左移2位,结果为 1111 0000
h = a >> 2 # 二进制右移2位,结果为 0000 1111
print(c, d, e, f, g, h)
输出结果为:
12 61 49 -61 240 15
总结
Python的非