一、算数运算符
+:加
-:减
*:乘
/:浮点除
5/2 = 2.5
//:除法取整
5//2 = 2
%:取模(余)
**:幂
2**4 = 16
二、比较运算符
==:等于
!=:不等于
>:大于
<:小于
>=:大于等于
<=:小于等于
三、逻辑运算符
not:非
and:与
or:或
优先级:not > and > or
四、赋值运算符
=:赋值
+=:加法赋值
-=:减法赋值
*=:乘法赋值
/=:浮点除法赋值
//=:整除赋值
%=:取模赋值
**=:幂赋值
五、成员运算符
in:在指定序列中找到值返回True,反之返回False
not in:在指定序列中找不到值返回False,反之返回True
# 成员运算符 sheet = ["张三","李四","王五"] if "张三" in sheet: print("张三在听课") else: print("张三旷课了") # 输出:张三在听课
六、身份运算符
is:判断两个变量是否引至一个对象(同一内存地址)
is not:判断两个变量是否引至不同对象
# 身份运算符 a = 5 b = a c = 5.0 print(b is a) #True print(a is b) #True print(a == c) #True print(a is c) #False d = 5 print(a is d) #True
七、位运算符(重要!!平时不怎么用,但是面试时会问)
&:按位与运算符
0&0 = 0
0&1 = 0
1&0 = 0
1&1 = 1
|:按位或运算符
0|0 = 0
0|1 = 1
1|0 = 1
1|1 = 1
^:按位异或运算符
0^0 = 0
0^1 = 1
1^0 = 1
1^1 = 0
~:按位取反运算符
~1 = 0
~0 = 1
<<:左移动运算符
左移若干位,右补0
>>:右异动运算符
右移若干位,左补0
# 位运算符 a = 60 # 60的二进制:00111100 b = 13 # 13的二进制:00001101 c = 0 # 按位与(除了1&1 = 1,其余都为0):00001100 = 2^3+2^2 = 12 c = a & b print("a & b = ",c) # 按位或(除了0|0 = 0,其余都为1):00111101 = 2^5+2^4+2^3+2^2+2^0 = 61 c = a | b print("a | b = ",c) # 按位异或(相同返回0,不同返回1):00110001 = 2^5+2^4+2^0 = 49 c = a ^ b print("a ^ b = ",c) # 按位取反(~1 = 0,~0 = 1):11000011 = 2^7+2^6+2^1+2^0 = 195 # 数字原来为正数,取反后加1变为负数:-(~11000011+1) = -61 # 以此类推:~ b = -14 c = ~ a print("~ a = ",c) # 左移:右补0 # 原始:00111100 # 00111100000 = 480 c = a << 3 print("a << 3 = ",c) # 右移:左补0,删除最右边相同位数的数,左边添"000",右边删除"100" # 原始:00111100 # 00000111 = 7 c = a >> 3 print("a >> 3 = ",c)