1 算术运算符
| 算术运算符 |
|
python # 加法 ‘+’ print(5 + 6) # 减法 ‘-’ print(5 - 6) # 乘法 ‘*’ print(5 * 6) # 除法 ‘/’ print(5 / 6) # 取模 ‘%’ (余数) print(5 % 6) print(-5 % 6) print(5 % -6) print(-5 % -6) # 整除 ‘//’ (商) print(5 // 6) print(-5 // 6) print(5 // -6) print(-5 // -6) # 幂 ‘**’ print(5 ** 6) |
python 11 -1 30 0.8333333333333334 5 1 -1 -5 0 -1 # 负数整除 向下取整 -1 0 15625 |
2 赋值运算符
| 赋值运算符 |
|
python # 正常赋值 ‘=’ a = 7 print(a) # 加法赋值 ‘+=’ a = 7 a += 3 print(a) # 减法赋值 ‘-=’ a = 7 a -= 3 print(a) # 乘法赋值 ‘*=’ a = 7 a *= 3 print(a) # 除法赋值 ‘/=’ a = 7 a /= 3 print(a) # 取模赋值 ‘%=’ a = 7 a %= 3 print(a) # 整除赋值 ‘//=’ a = 7 a //= 3 print(a) # 幂赋值 ‘**=’ a = 7 a **= 3 print(a) |
python 7 10 4 21 2.3333333333333335 1 2 343 |
3 比较运算符
| 比较运算符 |
|
python # 等于 ‘==’ print(7 == 3) # 不等于 ‘!=’ print(7 != 3) # 大于 ‘>’ print(7 > 3) # 小于 ‘<’ print(7 < 3) # 大于等于 ‘>=’ print(7 >= 3) # 小于等于 ‘<=’ print(7 <= 3) |
python False True True False True False |
4 位运算符
# a = 0011 1100 = 128*0 + 64*0 + 32*1 + 16*1 + 8*1 + 4*1 + 2*0 + 1*0 = 60# b = 0000 1101 = 128*0 + 64*0 + 32*0 + 16*0 + 8*1 + 4*1 + 2*0 + 1*1 = 13a = 60b = 13
| 分类 |
运算符 |
描述 |
示例 |
二进制原码 |
输出 |
注释(对比二进制各位数值) |
|
|
|
print(a) |
0011 1100 |
60 |
|
|
|
|
print(b) |
0000 1101 |
13 |
|
| 按位运算符 |
& |
按位与运算符 |
print(a & b) |
0000 1100 |
12 |
对应位都为1,该位为1;其一为0,该位为0。 |
|
` |
` |
按位或运算符 |
`print(a |
b)` |
0011 1101 |
61 |
对应位都为0,该位为0;其一为1,该位为1。 |
|
^ |
按位异或运算符 |
print(a ^ b) |
0011 0001 |
49 |
对应位相等,该位为0;不相等,该位为1。 |
|
~ |
按位取反运算符 |
print(~a) |
1100 0011(补码) |
-61 |
1. 二进制补码形式,0变1,1变0,首位为符号; |
|
|
|
|
1100 0010(减1) |
|
2. 负数输出时,先将补码减1; |
|
|
|
|
1011 1101(再取反) |
|
3. 再取反。(可简单记做~a = -(a + 1)) |
| 移位运算符 |
<< |
左移动运算符 |
print(a<<2) |
1111 0000 |
240 |
各位1的位置向左移动2个单位。 |
|
>> |
右移动运算符 |
print(a>>2) |
0000 1111 |
15 |
各位1的位置向右移动2个单位。 |
# 按位异或运算符a = 0b0111100b = 0b00001101print(a ^ b) # 返回:49
5 逻辑运算符
| 逻辑运算符 |
|
|
|
|
|
|
|
| ```python # 布尔与 ‘and’ ‘&’ print(True and False) print(True & False) # 布尔或 ‘or’ ‘ |
’ print(True or False) print(True |
False) # 布尔非 ‘not’ print(not True) ``` |
|
|
|
python False False True True False |
and/& |
True |
False |
or/` |
` |
True |
False |
not |
not |
True |
True |
False |
True |
True |
True |
True |
False |
False |
False |
False |
False |
True |
False |
False |
True |
6 成员运算符
| 成员运算符 |
|
python # 成员运算符 ‘in’ ‘not in’ list1 = list(range(1, 8)) print(3 in list1) print(3 not in list1) |
python True False |
| 复合数据类型成员 |
|
python # 元组 识别 print(1 in (1,2,3)) # 列表 识别 print(1 in [1,2,3]) # 集合 识别 print(1 in range(5)) # 字典 key 识别 print(1 in {1,2,3}) print(1 in {1:'a',2:'b',3:'c'}) # 字典 item 不识别 print('a' in {1:'a',2:'b',3:'c'}) |
python True True True True True False |
7 身份运算符
| 身份运算符 |
|
python # int 同一性判断 a = 123 b = 123 print(a is b) # float 同一性判断 a = 1.23 b = 1.23 print(a is b) # 字符串 同一性判断 a = '123' b = '123' print(a is b) # 列表 同一性判断 a = [1, 2, 3] b = [1, 2, 3] print(a is b) # 元组 同一性判断 a = 1, 2, 3 b = (1, 2, 3) print(a is b) |
python True True True False True |
8 运算符优先级
| 括号 |
幂 |
符号 |
算术运算符 |
|
位运算符 |
|
|
比较运算符 |
|
赋值运算符 |
身份运算符 |
成员运算符 |
逻辑运算符 |
() |
**指数 |
~按位取反
+正
-负 |
*乘
/除
%取模
//取整数 |
+加
-减 |
>>右移
<<左移 |
&按位与 |
^按位异或 ` |
`按位或 |
<=小于等于
<小于
>大于
>=大于等于 |
<>不等于
==等于
!=不等于 |
=正常赋值
%=取模赋值
/=除法赋值
//=整除赋值
-=减法赋值
+=加法赋值
*=乘法赋值
**=幂赋值 |
is
is not |
in
in not |
not布尔与
and布尔或
or布尔非 |