运算符分为一下几种类型:
算数运算符(通常只针对数字类型)
| 算数运算符 |
说明 |
示例 |
| + |
加法 |
2 + 8 = 12 |
| - |
减法 |
30 - 6 = 24 |
| * |
乘法 |
3 * 6 = 18 |
| / |
除法(浮点型) |
15 / 2 = 7.5 |
| // |
除法(取整型) |
3 // 5 = 0 |
| % |
求模(既余数) |
7 % 3 = 1 |
| ** |
幂 |
2 ** 3 = 8 |
3 / 5 = 0.6 # py3中是自然除,py2中是取整除。 float(3) / 5 = 0.6 py2中的用法

比较运算符
| 比较运算符 |
说明 |
示例 |
| == |
等于 |
1 == 1 True |
| != |
不等于 |
5 != 5 False |
| > |
大于 |
3 > 2 True |
| >= |
大于等于 |
6 >= 8 False |
| < |
小于 |
4 < 7 True |
| <= |
小于等于 |
9 <= 6 False |
1 != '1' True # 除了 == 和 != 最好类型相同
赋值运算符
| 赋值运算符 |
说明 |
示例 |
| = |
简单赋值 |
c = a + b |
| += |
加法赋值 |
c += a 等效 c = c + a |
| -+ |
减法赋值 |
c -= a 等效 c = c - a |
| *= |
乘法赋值 |
c *= a 等效 c = c * a |
| /= |
除法赋值 |
c /= a 等效 c = c / a |
| %= |
取模赋值 |
c %= a 等效 c = c % a |
| **= |
幂赋值 |
c **= a 等效 c = c ** a |
| //= |
取整除 |
c //= a 等效 c = c // a |
逻辑运算符
| 比较运算符 |
说明 |
示例 |
| and |
“与”。and 需要运算符两边都是True结果才为True |
True and True 为True |
| or |
“或”。or 只要运算符两边任意一个为True,结果就是True |
True or False 为True |
| not |
“非”。非真为假,非假为真 not True 为Falseb “非”。非真为假,非假为真 |
not True 为False |
2 < 4 or 3 > 9 = True # 总是从左到右计算,一但能够决定表达式最终的值,将立刻停止计算并返回
位运算符
| 位运算符 |
说明 |
示例 |
| & |
按位与 |
|
| | |
按位或 |
|
| ^ |
按位异或 |
|
| ~ |
按位取反 |
|
| >> |
按位右移 |
|
| << |
按位左移 |
|
很少用到了解下就好
其他运算符
赋值运算符
=:把右边赋值给左边,如 a = 2
a += b、a -= b、a *= b、a /= b、a //= b、a %= b、a **= b:相等于a = a + b、a = a - b...
成员运算符:
in 和 not in:一个元素是否存在于一组元素中。
身份运算符:
is 和 not is:两者是否是指向同一个内存对象
>>> m = 20
>>> n = 20
>>> m is n
True
运算符的优先级
## 算数运算符高于比较运算符
>>> 2 * 3 > 1 + 2
True
## 比较运算符的优先级高于逻辑运算符
>>> (2 * 3 > 1 + 2) and True
True
## 拿不准的时候加括号
((2 * 3 > 1 + 2)) and True
True
位运算符
# 0011 1100
>>> bin(60)
'0b111100'
# 0000 1100
>>> bin(12)
'0b1100'
# 按位与
>>> 60 & 12
12
#60的二进制与12的二进制:
0011 1100 0000 1100
0000 1100
# 按位或
>>> 60 | 12
60
0011 1100 0000 1100
0011 1100
# 按位异或
>>> 60 ^ 12
48
0011 1100 0000 1100
0011 0000
>>> int('0b110000',2) = 48
# 按位取反
>>> ~60 = -61
0011 1100 1100 1100
>>> int('0b11001100', 2)
204
>>> int('0b1001100', 2)
76
>>> 60 >> 2
15
>>> 60 << 2
240