算数运算符
主要用于数值之间的运算
运算符 | 描述 | 实例 |
---|---|---|
+ | 数据做和 | |
- | 数据做差 | |
* | 数据做积 | |
/ | 数据做商 | |
% | 求余 | |
** | 幂运算 | |
// | 整除 |
这里请仔细看一下 / /
与 /
的区别:
//:向下取整
/:两个整型取值是浮点型
赋值运算符 ‘=’
将等号右边的值赋值给左边 如 a=3
赋值的种类 | 描述 |
---|---|
普通 a=3 | 将3赋值给a |
多个变量同时被赋予同一个值 a=b=c=1 | a、b、c、的值都为1 |
多个变量同时赋值 a,b=1,2 | a 的值为1,b的值为2 |
Ps:Python中不支持自增自减运算符
如i++、i- -等
复合赋值运算符
复合赋值运算符 = 算数运算符 + 赋值运算符
类型 | 描述 |
---|---|
+= | a+=b 等价于 a=a+b |
-+ | a-=b 等价于 a=a-b |
*= | a*=b 等价于 a=a*b |
/= | a/=b 等价于 a=a/b |
%= | a%=b 等价于 a=a%b |
**= | a**=b 等价于 a=a**b |
//= | a//=b 等价于 a=a//b |
比较运算符
用于比较两个数值,其结果返回的只有True False
比较简单,这里不做论述
= 、 > 、 < 、!= 、>= 、<=
逻辑运算符
运算符 | 描述 |
---|---|
and | 并且 |
or | 或者 |
not | 除非 |
这里与java等语言不同,其中也包含短路思想 如and 并且运算符 :
a and b:
若 a 为真则继续算 b 的值,如果 a 为假 则直接输出False
a or b:
若 a为真则直接输出a的值,如果a为假 则算b的值,表达式的结果为b的值 再根据b的值判断输出True 或者 False
成员运算符
用于判断某个值是否在某个序列中
类型 | 描述 |
---|---|
in | 值是否处于该序列中 处于返回True 否则返回False |
not in | 值是否不处于该序列中,不处于返回True 否则返回False |
位运算符
程序中所有的数值在内存中都以二进制的形式进行存储,位运算则是直接对二进制数进行操作的Python中也存在为运算符,包括一下几种
位运算符 | 功能描述 |
---|---|
<< | 按位左移 |
>> | 按位右移 |
& | 按位与 |
(竖线) | 按位或 |
^ | 按位异或 |
~ | 按位取反 |
0000 0000
高位 低位
按位左移
所有的二进制数全部左移n位,高位丢弃(如果是0才丢弃,否则一直保留),低位补0(左移几位那么右边就补几个0,左边的丢弃)
例如:
9<<4
00001001 -> 10010000
9 -> 144
这里说一下为什么00001001是9
1001 对应 8421 那么8+1=9这是为什么呢 ?
即
我们在计算将2进制数变成十进制时是这样计算的 2的三次方*1+ 2的二次方*0+ 2的一次方*0 + 2的0次方*1
所以二进制中每一位所代表的十进制数就是
2的八次方256
2的七次方128
2的六次方64
2的五次方32
2的四次方16
2的三次方8
2的二次方4
2的一次方2
2的零次方1
那么10010000
就是128+16=144
正巧
9 * 2^4=916=144
所以在计算某一个数乘2的几次方时可以用左移运算
5 * 2^4 = 516=80
按位右移动
将所有的二进制数向右移动n位,移出位去掉,高位不够补0 符号位保持不变
9>>4
0000 1001 -> 0000 0000 变成为0
按位与(&)运算
类似于乘法,二进制状态下,只有两个都是1结果才是1,即每一位做积即可
9&8 = 8
00001001
&
00001000
———————
00001000
按位或
二进制状态下,只要有一个是1则就是1
9|8=9
00001001
|
00001000
——————
00001001
当参与运算是负数时,参加的两个数都已补码的形式出现
负数在计算机以补码的形式存在
补码=源码取反+1
异或运算
二进制位中,如果两位中一个为1,另一位为0,则结果为1,否则为0
9^8=1
00001001
^
00001000
——————
00000001
按位取反
将二进制的每一位进行取反
这里要运用补码的知识
正数的源码 = 反码 = 补码
将补码转换为源码时 符号不变各个位取反然后再在源码的基础上+1得源码
~9
源码:00001001
反码:11110110
补码:符号位不变,源码值+1
10001010
————————
-10
运算符的等级
指数
按位翻转
乘、除、取模、取整数
加法、减法
右移、左移
按位与
位运算符
比较运算符
等于运算符
赋值运算符
成员运算符
逻辑运算符