简介
Python中有以下几种类型的运算符:
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
算术运算符
运算符 | 描述 |
---|---|
+ | 加 – 相加 |
– | 减 – 相减 |
* | 乘 – 两个数相乘 |
/ | 除 – 相除 |
% | 取模 – 返回除法的余数 |
** | 幂 – 返回x的y次幂 |
// | 取整除 – 返回商的整数部分 |
演示代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
>>>x = 4 >>>y = 3 >>>x + y 7 >>>x - y 1 >>>x * y 12 >>>x / y 1.3333333333333333 >>>x % y 1 >>>x ** y 64 >>>x // y 1 |
比较运算符
运算符 | 描述 |
---|---|
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
赋值运算符
运算符 | 描述 |
---|---|
= | 简单的赋值运算符 |
+= | 加法赋值运算符 |
-= | 减法赋值运算符 |
*= | 乘法赋值运算符 |
/= | 除法赋值运算符 |
%= | 取模赋值运算符 |
**= | 幂赋值运算符 |
//= | 取整除赋值运算符 |
演示代码:
1 2 3 4 5 6 7 8 9 10 11 |
>>>x = 4 >>>print(x += 1) 5 >>>print(x -= 1) 4 >>>print(x *= 1) 4 >>>print(x /= 1) 4 >>>print(x %= 2) 0 |
位运算符
位运算操作中,是把数字当做二进制数来处理的:常用的位运算符如下:
运算符 | 描述 |
---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由”<<"右边的数指定移动的位数,高位丢弃,低位补0 |
>> | 右移动运算符:把”>>”左边的运算数的各二进位全部右移若干位,”>>”右边的数指定移动的位数 |
演示代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
>>>x = 60 #60 = 0011 1100 >>>y = 13 #13 = 0000 1101 >>>x & y 12 #12 = 0000 1100 >>>x | y 61 #61 = 0011 1101 >>>x ^ y 49 #49 = 0011 0001 >>>~x -61 #-61 = 1100 0011 >>>x << 2 240 #240 = 1111 0000 >>>x >> 2 15 #15 = 0000 1111 |
逻辑运算符
逻辑运算“与”,“或”,“非”。
运算符 | 描述 |
---|---|
and | 布尔”与” – 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值 |
or | 布尔”或” – 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值 |
not | 布尔”非” – 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True |
演示代码:
1 2 3 4 5 6 7 8 |
>>>x = 1 >>>y = 2 >>>x and y 2 >>>x or y 1 >>>not x False |
成员运算符
成员运算符判断是否在容器数据类型里(字符串、列表、元组、字典)。
运算符 | 描述 |
---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False |
身份运算符
身份运算符用于比较两个对象的存储单元
运算符 | 描述 |
---|---|
is | is 是判断两个标识符是不是引用自一个对象 |
is not | is not 是判断两个标识符是不是引用自不同对象 |
is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
1 2 3 4 5 6 7 8 9 10 11 |
>>>x = [1, 2, 3] >>>y = x >>>y is x True >>>y == x True >>>y = x[:] >>>y is x False >>>y == x True |
运算符优先级
从高到低列出了运算符的优先级。同一行中的运算符具有相同优先级,然后运算符的优先级是运算表达式从左到右。
优先级 | 运算符 | 描述 |
---|---|---|
1 | lambda | Lambda表达式 |
2 | or | 布尔“或” |
3 | and | 布尔“与” |
4 | not | 布尔“非” |
5 | in,not in | 成员测试 |
6 | is,is not | 同一性测试 |
7 | <,<=,>,>=,!=,== | 比较 |
8 | | | 按位或 |
9 | ^ | 按位异或 |
10 | & | 按位与 |
11 | <<,>> | 移位 |
12 | +,- | 加法与减法 |
13 | *,/,% | 乘法、除法与取余 |
14 | +x,-x | 正负号 |
15 | ~x | 按位翻转 |
16 | ** | 指数 |
17 | x.attribute | 属性参考 |
18 | x[index] | 下标 |
19 | x[index:index] | 寻址段 |
20 | f(arguments…) | 函数调用 |
21 | (experession,…) | 绑定或元组显示 |
22 | [expression,…] | 列表显示 |
23 | {key:datum,…} | 字典显示 |
24 | ‘expression,…’ | 字符串转换 |