Python3基础(三) 运算符
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。 |
浙公网安备 33010602011771号