11、pass,is,位运算的补充
pass的补充
一般Python的代码是基于:和缩进来实现,Python中规定代码块中必须要有代码才算完整,在没有代码的情况下为了保证语法的完整性可以用pass代替
if 条件: pass else: pass for i in range(10): pass
is比较
- ==,用于比较两个值是否相等
- is,用于表示内存地址是否一致
v1 = [] v2 = [] print(v1 == v2) #True,两个值相同 print(v1 is v2) #Flase,不属于同一块内存
v1 = [] v2 = v1 print(v1 == v2) #True,两个值相同 print(v1 is v2) #True,属于同一块内存
v1 = None v2 = None print(v1 == v2) #True,两个值相同 print(v1 is v2) #True,属于同一块内存
位运算
计算机底层本质都是二进制,我们平时在计算机中做的很多操作底层都会转换为二进制的操作,位运算就是对二进制的操作
- &,与(都为1)
a = 60 #60 = 0011 1100 b = 13 #13 = 0000 1101 c = a & b
print(c) #12 = 0000 1100
- |,或(只要有一个为1)
a = 60 #60 = 0011 1100 b = 13 #13 = 0000 1101 c = a | b print(c) #61 = 0011 1101
- ^,异或(值不同)
a = 60 #60 = 0011 1100 b = 13 #13 = 0000 1101 c = a ^ b print(c) #49 = 0011 0001
- ~,取反
a = 60 #60 = 0011 1100 c = ~a print(c) #-61 = 1100 0011
- <<,左移动
a = 60 #60 = 0011 1100 c = a << 2 print(c) #240 = 1111 0000
- >>,右移动
a = 60 #60 = 0011 1100 c = a >> 2 print(c) #15 = 0000 1111
平时开发中,二进制的位运算很少用到,在计算机底层或网络传输协议底层用的比较多
- 计算 2**n
print(2**0) #1 << 0 1 1 print(2**1) #1 << 1 10 2 print(2**2) #1 << 2 100 4 print(2**3) #1 << 3 1000 8
- 计算一个数的一半
a = 10 #10 = 0000 1010 print(a >> 1) #5 = 0000 0101 a = 20 #10 = 0000 1010 print(a >> 1) #10 = 0001 0100

浙公网安备 33010602011771号