一、算术运算符
以下假设变量a=3,变量b=2
运算符 | 名称 | 实例 |
---|---|---|
+ | 加 | a+b 输出5 |
- | 减 | a-b 输出1 |
* | 乘 | a*b 输出6 |
/ | 除 | a/b 输出1.5 |
// | 取整 | a//b 输出1 |
% | 求余 | a%b 输出1 |
** | 幂运算 计算a的b次方 | a**b 输出9 |
二、关系运算符
一般用于判断数据的大小关系,返回布尔值(true或false)
以下假设变量a=3,变量b=2
运算符 | 描述 | 示例 |
> | 判断左侧数是否大于右侧数 | a>b,返回true |
>= | 判断左侧数是否大于等于右侧数 | a>=b,返回true |
< | 判断左侧数是否小于右侧数 | a<b,返回false |
<= | 判断左侧数是否小于等于右侧数 | a<=b,返回false |
== | 判断左右两侧的数是否相等 | a==b,返回false |
!= | 判断左右两侧的数是否不等于 | a!=b,返回true |
三、赋值运算符
将等号右边的值赋值给左边的变量。
运算符 | 描述 | 示例 | 运算符 | 描述 | 示例 | |
= | 直接赋值 | a=3 | /= | 除法赋值 | a/=3相当于a=a/3 | |
+= | 加法赋值 | a+=3相当于a=a+3 | %= | 求余赋值 | a%=3相当于a=a%3 | |
-= | 减法赋值 | a-=3相当于a=a-3 | **= | 指数幂赋值 | a**=3相当于a=a**3 | |
*= | 乘法赋值 | a*=3相当于a=a*3 | //= | 整除赋值 | a//=3相当于a=a//3 |
四、逻辑运算符
以下假设变量a=false,变量b=true
逻辑运算符 | 逻辑表达式 | 描述 | 示例 |
and | x and y | “与” 如果x为false,x and y返回false | a and b 返回false |
or | x or y | “或” 如果x为true,x or y返回true | a or b 返回true |
not | x not y | “非” 如果x为true,not x 返回false | not a 返回true |
五、成员运算符
用于判断序列中是否有某个成员。
成员运算符 | 描述 | 示例 |
in | x in y 如果x是序列y的成员,则计算结果为true,否则为false | 3 in [1,2,3,4] 计算结果为true 5 in [1,2,3,4] 计算结果为false |
not in | x not in y 如果x不是序列y的成员,则计算结果为true,否则为false | 3 not in [1,2,3,4] 计算结果为false 5 not in [1,2,3,4] 计算结果为true |
六、身份运算符
身份运算符用于比较两个对象的存储单元,即两个对象的内存地址是否一致
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(x) != id(y)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
七、位运算符
位运算符是把数字看作二进制数进行计算的,因此需要先将要执行运算的数据转换为二进制才能执行运算。假设a=35,b=49,a的二进制数为0010 0011:b的二进制数为:0011 0001
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 33 ,二进制解释: 0010 0001 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | (a | b) 输出结果 51 ,二进制解释: 0011 0011 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a ^ b) 输出结果 18 ,二进制解释:0001 0010 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 | (~a ) 输出结果 -36 ,二进制解释:1101 1100 ,负数转二进制步骤:1、将负数转换成对应绝对值的二进制字符串,得到原码;2、再对原码的二进制每一位进行去反操作得到反码;3、将反码+1得到补码。 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 | a << 2 输出结果 140 ,二进制解释:1000 1100 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 | a >> 2 输出结果 8 ,二进制解释:0000 1000 |