一.运算符运算顺序总结
①个别运算符:优先级最高 ** 幂运算
优先级最低 = 赋值运算符
() 括号可以提升运算优先级
②整体 : 一元运算符 > 二元运算符
一元运算符: 同一时间,只操作一个值 - ~
二元运算符: 同一时间,操作两个值 + - * / ...
③ 同一层级 逻辑: () > not > and > or
算数: 乘除 > 加减
位运算符: ( << >> ) > & > ^ > |
④ 其他运算符 运算符的运算顺序按下方 从上到下↑--->↓的顺序依次运算
算数运算符 : + - * / // % **
位运算符 : & | ^ << >> ~
比较运算符 : > < >= <= == !=
身份运算符 : is 和 is not (检测两个数据在内存当中是否是同一个值,同一个id地址)
成员运算符 : in 和 not in (针对于容器型数据)
逻辑运算符 : not and or
赋值运算符是最后算完进行赋值,做收尾工作的 = += -= *= /= //= %= **=
二.运算符运算
①算数运算符 + - * / // % **
var1 = 6 var2 = 4
<1> + res = var1 + var2 print(res)
<2> - res = var1 - var2 print(res)
<3> * res = var1 * var2 print(res)
<4> / 除法 (结果为小数) res = var1 / var2 print(res)
<5> // 地板除 (返回整数) res = var1 // var2 print(res)
任意数和n地板除,会出现n个相同的数字
<6>% 取余 res = 11 % 4 print(res)
res = 11 % 4 3
res = -11 % 4 -3 + 4 = 1
res = 11 % -4 3 + (-4) = -1
res = -11 % -4 -3(如果被除数和除数都是负数,在正常得到的结果前面填上负号即可.)
任意数和n取余,范围是0~(n-1)
②比较运算符 > < >= <= == !=
比较运算符只会差生两种结果: True 真的 ,False 假的
③赋值运算符 = += -= *= /= //= %= **=
④成员运算符: in 和 not in (针对于容器型数据)
str:字符串必须是一个连续的片段
dic:在字典中只判断键,不判断值
⑤身份运算符is 和 is not (检测两个数据在内存当中是否是同一个值/是否是同一个id地址)
相同:int => -5~正无穷 float => 非负数 bool => 值相同 complex => 只有虚数且相等
⑥逻辑运算符 not and or
<1>and 逻辑与 全真则真,一假则假
<2>or 逻辑或 全假则假,一真则真
<3>not 逻辑非 真变假,假变真
★逻辑短路: 如果出现了短路效果,后面的代码不执行
短路:(1) True or 表达式
(2) False and 表达式
⑦位运算符:& | ^ << >> ~
<1>按位与 &
<2>按位或 |
<3>按位异或 ^ 两个值不一样,返回真,否则返回假
<4>左移 << 左移相当于做乘法 : X * 2的n次幂
<5>右移 << 右移相当于做除法 : X // 2的n次幂
<6>按位非 ~ (针对于补码进行操作,按位取反,包括符号位) 公式: -(n+1)