运算和运算符
运算:一个或者一个以上的数据经过变化得到一个新值的过程
运算符:运算的符号就是运算符
分类:
1.算术运算
2.比较运算
3.赋值运算
4.逻辑运算
5.位运算 |
6.身份检测运算 is , is not
7.成员检测运算 in ,not in
1算术运算
1.+ 加法运算符
2.- 减法运算符
3.* 乘法运算符
4./ 除法运算符
5.** 幂运算
6.// 地板除运算符(取商运算符)
7.% 取余运算符
2比较运算
比较运算实际是ascii码的比较
1. > 大于运算符
2. < 小于运算符
3. >= 大于等于运算符
4. <= 小于等于运算符
5. == 等于运算符
6. != 不等于运算符
3赋值运算
1. = 赋值运算符
2. += 加法赋值运算 a += 1 等同于 a = a+1
3. -= 减法赋值运算
4. *= 乘法赋值运算
5. /= 除法赋值运算
6. %= 取余赋值运算
7. //= 取商赋值运算
8. **= 幂赋值运算
4逻辑运算(布尔值之间的运算)
1.and 逻辑与运算 bool and bool 有假则假
2.or 逻辑或运算 bool or bool 有真则真
3.not 逻辑非运算 not bool 假变真真变假
5位运算(补码的运算)
注意:位运算过程中,补码的高位数也参与运算
1. & 按位与运算 参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
2. | 按位或运算 只要对应的二个二进位有一个为1时,结果位就为1。
3. ~ 按位非运算 对数据的每个二进制位取反,即把1变为0,把0变为1。
4. ^ 按位异或运算 当两对应的二进位相异时,结果为1,否则为0。
5. << 左移运算 运算数的各二进位全部左移若干位,低位补0。<< 右边的数字指定了移动的位数
6. >> 右移运算 把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数
6.身份运算(检测两个数据在内存中是否是同一个值)
可以说如果内存地址相同,那么值肯定相同,但是如果值相同,内存地址不一定相同。
is 检测一个数据和另外一个数据在内存中是否是同一个值 x is y , 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is not 检测一个数据和另外一个数据在内存中是否不是同一个值
以下结论仅适用于windows,python3.7版本
-->Number 部分
1.对于整型而言,相同值 id一致
2.对于浮点数而言,相同值 id一致
3.布尔值而言,值相同情况下,id一致
4.复数而言,值相同情况下,id一致
超过 -5到256 的整型,每次执行id值都会改变。(小数池)
-->容器类型部分
5.字符串而言,字符串值相同情况下,id一致
6.元组而言,值相同的情况下,id一致
7.列表,字典,集合无论什么情况 id标识都不同
#7成员检测运算
in 检测一个数据是否存在于容器当中
not in 检测一个数据是否不存在于容器当中
注意:字典只能检测键,无法检测值
运算优先级
从大到小(有括号先算括号里面的):
**(幂运算)
~(按位非运算)
+-(正负数)
*/% //(乘法除法取余取商)
+-(加减)
<< >>(左移右移)
&(按位与运算)
^(按位异或运算)
|(按位或运算)
< <= > >= != ==(比较运算)
= %= /= //= -= += *= **= (赋值运算符)
is is not(身份运算)
in not in(成员检测)
not(逻辑非运算)
and(逻辑与运算)
or(逻辑或运算)