一,算术运算符
用于处理四则运算的符号
| 运算符 | 描述说明 | 示例 | 结果 |
| + | 加法 | 1+1 | 2 |
| - | 减法 | 1-1 | 0 |
| * | 乘法 | 2*3 | 6 |
| / | 除法 | 10/3 | 3.3333 |
| // | 整除 | 10/3 | 3 |
| % | 求余 | 10%3 | 1 |
| ** | 幂运算 | 2**4 | 16 |
算术运算符的优先级由高到低:
第一级:**
第二级:* / % //
第三级:+ -
二,赋值运算符
| 运算符 | 描述说明 | 示例 | 展开形式 |
| = | 简单的赋值运算 | x=y | x=y |
| += | 加赋值 | x+=y | x=x+y |
| -= | 减赋值 | x-=y | x=x-y |
| *= | 乘赋值 | x*=y | x=x*y |
| /= | 除赋值 | x/=y | x=x/y |
| %= | 求余赋值 | x%=y | x=x%y |
| **= | 幂赋值 | x**=y | x=x**y |
| //= | 整除赋值 | x//=y | x=x//y |
a=b=c=100 # 支持链式赋值 相当于 a=100 , b=100 , c=100 print(a,b,c) a,b,c=10,20,30 #支持系列解包赋值 print(a,b,c) print('*'*50) a,b=b,a #将b的值赋给a,将a的值赋给b,直接实现两变量相互交换值 print(a,b)
三,比较运算符
| 运算符 | 描述说明 | 示例 | 展开形式 |
| > | 大于 | 98>90 | True |
| < | 小于 | 98<90 | False |
| == | 等于 | 98==90 | False |
| != | 不等于 | 98!=90 | True |
| >= | 大于或等于 | 98>=90 | True |
| <= | 小于或等于 | 98<=90 | False |
四,逻辑运算符
| 运算符 | 描述说明 | 用法 | 结合方向 | 说明 |
| and | 逻辑与 | 表达式1 and 表达式2 | 从左到右 | 表达式只有全部为True,结果才为True;否则结果为False |
| or | 逻辑或 | 表达式1 or 表达式2 | 从左到右 | 表达式中只要有一个为True,结果就为True;只有全部为False时,结果才为False |
| not | 逻辑非 | not 表达式 | 从右到左 | 表达式结果的相反 |
逻辑或,当有多个表达式时,当前面的表达式计算为True,后面的表达式就不用参与计算。
五,位运算符
位运算符把数字看作二进制数来进行计算的。


按位与:将计算的两个数转换为二进制,二进制相同位数上,如果都是1,则结果为1;其他情况结果都为0。
按位或:将计算的两个数转换为二进制,二进制相同位数上,如果其中有一个为1,则结果为1;两个都是0,则结果为0。
位异或:将计算的两个数转换为二进制,二进制相同位数上,如果一个为0,另一个为1,则结果为1;其他情况结果为0。
位取反:将计算的数转换为二进制,如果是1,取反的结果为0;如果是0,取反的结果为1。

“左移位”运算(<<)是将一个二进制数向左移动指定的位数,左边(高段位)溢出的位被丢弃,右边(低位端)的空位用0补充。
print(2<<2) # 相当于 2*(2**2) print(3<<5) # 相当于 3*(2**5)

“右移位”运算(>>)是将一个二进制数享有移动指定的位数,右边(低位端)溢出的位被丢弃,左边(高位端)的空位端,如果最高位是0(正数)左侧空位填0,如果最高位是1(负数),左侧空位填1。
print(2>>2) # 相当于 2//(2**2) print(4>>1) # 相当于 4//(2**1)
运算符的优先级
| 运算符 | 描述说明 |
| ** | 幂运算 |
| ~ + - | 取反,正号,负号 |
| * / % // | 算术运算符 |
| + - | 算术运算符 |
| << >> | 位运算符中的左移位或右移位 |
| & | 位运算符中的按位与 |
| ^ | 位运算符中的异或 |
| | | 位运算符中的按位或 |
| < <= > >= != == | 比较运算符 |
posted on
浙公网安备 33010602011771号