操作符
操作符 | 名称 | 用途 | 举例 |
---|---|---|---|
+ | 加 | 使两操作数相加 | 3 + 5 得到 8. 'a' + 'b' 得到 'ab'. |
- | 减 | 求出前后两数之差。若第一个操作数未写则默认为0。 | -5.2 得道一个负数, 50 - 24得到26。 |
* | 乘 | 得出两数乘积或返回重复若干次的字符串。 | 2 * 3得到6。'la' * 3得到'lalala'. |
** | 幂 | 返回x的y次幂。 | 3 ** 4得到81 ( 3 * 3 * 3 * 3) |
/ | 除 | 将x除以y。 | 4 / 3 得到 1.3333333333333333。 |
// | 取整除 | 返回最大的整数商。 | 4 // 3 得到 1。 |
% | 取模 | 返回余数。 | 8% 3 得到2。 -25.5% 2.25得到1.5. |
<< | 左位移 | 将操作数向左移动若干bit位。(数字在内存中以二进制表示) | 2 << 2 得到 8。 2在二进制中表示为10 。左位移两bit位后得到1000,十进制中表示为8。 |
>> | 右位移 | 将操作数向右移动若干bit位。 | 11 >> 1得到5, 11二进制下表示为1011,右位移一位后得到101,十进制中表示为5。 |
& | 按位与 | 数的按位与。 | 5 & 3 得到 1。 |
| | 按位或 | 数的按位或。 | 5 | 3得到7。 |
^ | 按位异或 | 数的按位异或。 | 5 ^ 3得到6。 |
~ | 按位翻转 | x的按位翻转是-(x+1)。 | ~5得到-6。 |
< | 小于 | 返回x是否小于y。所有比较运算符返回布尔值True或False。请注意布尔值大小心敏感。 | 5 < 3得到False,3 < 5得到True. 比较运算符可任意连接,如3 < 5 < 7得到True. |
> | 大于 | 返回x是否大于y。 | 5 > 3 得到True。如果两个操作符都是数字,解释器会将其转换到同一类型后再比较。若否则返回False。 |
<= | 小于等于 | 返回x是否小于等于y。 | x = 3; y = 6; x <= y返回True。 |
>= | 大于等于 | 返回x是否大于等于y。 | x = 4; y = 3; x >= 3得到True。 |
== | 等于 | 比较两操作数是否相等。 | x = 2; y = 2; x == y得到True。 x = 'str'; y = 'stR'; x == y得到False。 x = 'str'; y = 'str'; x == y得到True。 |
!= | 不等于 | 比较两操作数是否不相等。 | x = 2; y = 3; x!= y得到True。 |
not | 布尔非 | 若X为True则返回False,反之亦然。 | x = True; not x返回False。 |
and | 布尔与 | 无论y值为何,若X为False则x and y 返回False。 | x = False; y = True; x and y由于x为False返回False。此例中Python因为已知and左值为False而不会计算整个布尔表达式,这是短路求值法。 |
or | 布尔或 | 若x为True则返回True,否则返回y的布尔值。 | x = True; y = False; x or y返回True。布尔或同样使用短路求值。 |
运算顺序
操作符 | 描述 |
---|---|
lambda | Lambda表达式 |
or | 布尔或 |
and | 布尔与 |
not x | 布尔非 |
in, not in | 成员测试 |
is, is not | 同一性测试 |
<, <=, >, >=,!=, == | 比较运算符 |
| | 按位或 |
^ | 按位异或 |
& | 按位与 |
<<, >> | 位移 |
+, - | 加减 |
*, /, //, % | 乘除、取整除、取余 |
+x, -x | 正负 |
~x | 按位非 |
** | 幂 |
x.attribute | 属性引用 |
x[index] | 下标 |
x[index1:index2] | 寻址段 |
f(arguments …) | 函数调用 |
(expressions, …) | 显示绑定或元组 |
[expressions, ...] | 显示列表 |
{key:datum, …} | 显示字典 |