python的所有位运算符,示例:
位运算都是首先将数转换为二进制,然后再进行运算。
其中&,|,^,~,<<,>> 分别是 按位与运算,按位或运算,按位异或运算,按位翻转运算,按位左移,按位右移
其中按位异或指的是,对于两个数的二进制,二进制上对应位如果相同则为0,不同则为1。
其他运算由以下示例可以看出。
# 7 转换为二进制为 00000111, 18 转换为二进制位 00010010 a = 7 & 18 # a为00000010 print(a) # 输出为2 # 7 转换为二进制为 00000111, 18 转换为二进制位 00010010 b = 7 | 18 # b为00010111 print(b) # 输出为23 # 7 转换为二进制为 00000111, 18 转换为二进制位 00010010(相同变为0,不相同变为1) c = 7 ^ 18 # c为00010101 print(c) # 输出为21 # 18 转换为二进制位 00010010 d = ~18 # ~x = -(x + 1) print(d) # 输出为-19 # 18 转换为二进制位 00010010 e = 18 << 1 # e为00100100,左移n个单位相当于乘以2的n次幂 print(e) # 输出为36 # 18 转换为二进制位 00010010 f = 18 >> 1 # f位00001001,右移n个单位相当于除以2的n次幂 print(f) # 输出为9 g = 18 >> 2 # 18 / 4 print(g) # 输出为4
Python的优先级排行榜:
优先级: 1.函数、寻址
2.幂运算 **
3.翻转运算~
4.正负号,正负号要紧挨操作数,否则会出错,在python3中可以不用紧挨操作数
5.*、/、%
6.+,-
7.<<,>>
8.&、^、|,这三个也有优先级,但处于同一级,故而不细分
9.比较运算符
10.逻辑的not、and、or
11.lambda表达式:
简单来说,编程中提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。
python优先级使用小技巧:使用括号可以控制运算式子的优先级!!!