Python运算符
当有了数字类型,就可以通过运算符把它们连接起来形成表达式,通过表达式来进行运算,从而得到想要运算结果。
一、算述运算符
算术运算符用来对整数和浮点数进行运算,分为一元运算符和二元运算符。
一元运算符:+(正号)、-(负号)
二元运算符:针对两个操作数
运算符
|
名称
|
示例
|
说明
|
+
|
加
|
a + b
|
求a与b的和
|
-
|
减
|
a - b
|
求a减b的值
|
*
|
乘
|
a * b
|
求a与b的乘积
|
/
|
除
|
a / b
|
求a除以b的值
|
%
|
取余
|
a % b
|
求a除以b的余数
|
**
|
幂
|
a ** b
|
求a的b次幂
|
//
|
地板除法
|
a // b
| 求小于a与b的商的最大整数 |
![](https://i-blog.csdnimg.cn/blog_migrate/dbe1b14c198acbdfcb4dec9c9931730f.png)
二、比较运算符
比较运算符,用来比较两个表达式的大小,其结果只可能是一个布尔类型的True或False
运算符
|
名称
|
示例
|
说明
|
==
| 相等 |
a == b
|
比较两个值是否相等,相等为True,否则为False
|
!=
|
不相等
|
a != b
|
与==相反,两者相等时为False,不相等时为True
|
>
|
大于
|
a > b
|
当a大于b时为True,否则为False
|
<
|
小于
|
a < b
|
当a大于b时为False,否则为True
|
>=
|
大于等于
|
a >= b
|
当a大于等于b时为True,否则为False
|
<=
|
小于等于
|
a <=b
|
当a大于等于b时为 ,否则为False
|
![](https://i-blog.csdnimg.cn/blog_migrate/bad3ccf9ea25948a661ebde5b0c211d6.png)
三、逻辑运算符
逻辑运算符用于对布尔变量进行运算,运算后的结果也是布尔类型。
运算符
|
名称
|
示例
|
说明
|
not
|
逻辑非
|
not a
|
a为True则结果为False;a为False则结果为True
|
and
|
逻辑与
|
a and b
|
a、b全为True时结果为True,否则为False
|
or
|
逻辑或
|
a or b
|
a、b全为False时结果为False,否则为True
|
注意:在逻辑运算and,or在进行时会存在"短路”的情况
短路设计如下:
![](https://i-blog.csdnimg.cn/blog_migrate/49034d8de51a51784d52a83a013825e8.png)
四、位运算
位运算是以二进制位为单位进行运算的,操作数和结果都是整数类型的数据。
运算符
|
名称
|
示例
|
说明
|
~
|
位反
|
~x
|
把x的值按位取反
|
&
|
位与
|
x & y
|
把x与y按位进行与运算
|
|
|
位或
|
x | y
|
把x与y按位进行或运算
|
^
|
位异常
|
x ^ y
|
把x与y按位进行异或运算
|
>>
|
右移
|
x >> a
|
把x右移a位,高位使用符号位补位
|
<<
|
左移
|
x << a
|
把x左移a位,低位用0补位
|
按位取返操作有一个简便的公式
~a = (a + 1) * -1
如:a = 145,那么~a = -146
a = -145,那么 ~a = 144
五、赋值运算符
赋值运算符是赋值运算的一种简写形式,只有算述运算和位运算中二元运算(参与运算的有两个操作数)才有对应的赋值运算符。
运算符
|
名称
|
示例
|
说明
|
+=
|
加赋值
|
a += b
| 等价于 a = a + b |
-=
|
减赋值
|
a -= b
|
等价于 a = a - b
|
*=
|
乘赋值
|
a *= b
|
等价于 a = a * b
|
/=
|
除赋值
|
a /= b
|
等价于 a = a / b
|
%=
|
取余赋值
|
a %= b
|
等价于 a = a % b
|
**=
|
幂赋值
|
a **= b
|
等价于 a = a ** b
|
//=
|
地板除法赋值
|
a //= b
|
等价于 a = a // b
|
&=
|
位与赋值
|
a &= b
|
等价于 a = a & b
|
|=
|
位或赋值
|
a |= b
|
等价于 a = a | b
|
^=
|
位异或赋值
|
a ^= b
|
等价于 a = a ^ b
|
<<=
|
左移位赋值
|
a <<= b
|
等价于 a = a << b
|
>>=
|
右移位赋值
|
a >>= b
|
等价于 a = a >> b
|
六、运算符优先级
在程序中表达式中运算过于复杂时(存在多个运算符),则需要考虑运算符的优先级(哪个运算符先执行,哪个运算符后执行),但是在实际的提程序中一般使用()来分解复杂的运算表达式。
注意:下面表格中,优先级数值越小则表示优先级越高,大体的一个优先级顺序为:
算术运算符-->位运算符-->关系运算符-->赋值运算符
优先级
|
运算符
|
说明
|
1
|
()
|
小括号
|
2
|
**
|
幂
|
3
|
~
|
位反
|
4
|
+,-
|
正负号
|
5
|
*,/,%,//
|
乘、除、取余、地板除
|
6
|
+,-
|
加、减
|
7
|
<<,>>
|
位移
|
8
|
&
|
位与
|
9
| ^ |
位异或
|
10
|
|
|
位或
|
11
|
<,<=,>,>=,<>,!=,==
|
比较运算
|
12
|
not
|
逻辑非
|
13
|
and,or
|
逻辑与、逻辑或
|
14
|
=
|
赋值运算符
|