Python中的运算符大部分与C语言的类似,但也有很多不同的地方。这里就大概地罗列一下Python 3中的运算符。
一、算术运算符
运算符 | 描述 | 示例 |
---|---|---|
x + y | 加 | 10 + 20 = 30 |
x - y | 减 | 10 - 5 = 5 |
x * y | 乘 | 3 * 6 = 18 |
x / y | 除-返回浮点数 | 2 / 4 = 0.5 |
x // y | 取整除 - 返回商的整数部分 | 2 // 4 = 0 |
x % y | 取余 | 15 % 4 = 3 |
-x | 异号 | -(-5) = 5 |
+x | 不变号 | +5 = 5 |
abs(x) | 取绝对值 | abs(-0.4) = 0.4 |
int(x) | x转换为整数 | int(5.9) = 5 |
float(x) | x转换为浮点数 | float(5) = 5.0 |
complex(re, im) | 返回复数 - re为实数部分 im为虚数部分 | complex(4,3) = 4+3j |
c.conjugate() | 返回c的共轭复数 | c=4+3j; c.conjugate() = 4-3j |
divmod(x, y) | 返回一个数值对(x//y, x%y) | divmod(8, 3) = (2, 2) |
pow(x, y) | x的y次幂 | pow(2, 5) = 32 |
x ** y | x的y次幂 | 2 ** 5 = 32 |
Note:
- 双斜杠 // 除法总是向下取整。
- 从符点数到整数的转换可能会舍入也可能截断,建议使用math.floor()和math.ceil()明确定义的转换。
- Python定义
pow(0, 0)
和0 ** 0
等于1。
二、比较运算符
运算符 | 描述 |
---|---|
< | 小于 |
<= | 小于或等于 |
> | 大于 |
>= | 大于或等于 |
== | 等于 |
!= | 不等于 |
is | 判断两个标识符是不是引用自一个对象 |
is not | 判断两个标识符是不是引用自不同对象 |
- 八个比较运算符优先级相同。
- Python允许
x < y <= z
这样的链式比较,它相当于x < y and y <= z
。 - 复数不能进行大小比较,只能比较是否相等。
三、逻辑运算符
运算符 | 描述 |
---|---|
x or y | if x is false, then y, else x |
x and y | if x is false, then x, else y |
not x | if x is false, then True, else False |
Note:
- or是个短路运算符,它只有在第一个运算数为False时才会计算第二个运算数的值。
- and也是个短路运算符,它只有在第一个运算数为True时才会计算第二个运算数的值。
- not的优先级比其他类型的运算符低,所以not a == b相当于not (a == b),而 a == not b是错误的。
四、位运算符
运算符 | 描述 |
---|---|
x | y | 按位或运算符 |
x & y | 按位与运算符 |
x ^ y | 按位异或运算符 |
x << n | 左移动运算符 |
x >> n | 右移动运算符 |
~x | 按位取反运算符 |
五、赋值运算符
复合赋值运算符与算术运算符是一一对应的:
运算符 | 描述 |
---|---|
= | 简单的赋值运算符 |
+= | 加法赋值运算符 |
-= | 减法赋值运算符 |
*= | 乘法赋值运算符 |
/= | 除法赋值运算符 |
%= | 取模赋值运算符 |
**= | 幂赋值运算符 |
//= | 取整除法运算符 |
六、成员运算符
Python提供了成员运算符,测试一个元素是否在一个序列(Sequence)中。
运算符 | 描述 |
---|---|
in | 如果在指定的序列中找到值返回True,否则返回False。 |
not in | 如果在指定的序列中没有找到值返回True,否则返回False。 |