1、算数运算符( + - * / // % ** )
# + - * / // % ** # 加 减 乘 除 整除 余数 幂 #注意 #1、 / 得到浮点型, // 得看被除数 10 / 5 #2.0 10 // 5 #2 10.0//5 #2.2 #2、 % 15 % 4 # 3 -15%-4 #-3 原余取反 15 %-4 #-1 余数 + 除数 -15% 4 # 1 除数 - 余数
2、比较运算符( < > <= >= == != )
# 注意: num1 = 1 num2 = 1 res = num1 == num2 # True
3、 赋值运算符( = += -= *= /= //= %= **=)
num1 = 100 num2 = 5 num1 /= num2 # num1 = num1 / num2
4、 成员运算符( in , not in )
#针对于容器类型数据 strvar = "人生苦短,我用Python" res = "python" not in strvar # False res = "生python" in strvar # False # 字典当中只判断 key
5、身份运算符( is , is not)
# 判断内存地址是否相同 (同一文件,模块,python) #1 整型 (-5 ~ 正无穷 <小数据池:id地址相同>) #2 浮点型(非负数) #3 bool值相同 #4 复数类型(只有正虚数部分) #5 strvar = "哈"相同时 #6 元组为空的时候 #7 其他容器永不相同 (不同文件,模块) #1 整型 (-5 ~ 256 <小数据池:id地址相同>)
6、逻辑运算符( and , or ,nor)
# and """全真则真,有假则假""" # or """全假则假,有真则真""" # not """真假取反""" # 逻辑短路:出现短路,不执行后面代码 True or print("短路,不执行") # or 当遇到 True 已经有结果为真,后面真假不影响结果,所有为短路效果。 False or print("没短路,执行") # or 首先遇到 False 还需要判断后边的 # 优先级 : () > not > and > or7 同级从左往右
7、位运算符( & , | , ~ , ^ , << , >> )
#1、 按位与 & (二进制and-------有0出0,全1出1) #2、 按位或 | (二进制or--------有1出1 全0出0) #3、 按位非 ~ (二进制not,针对补码进行运算,按位取反,包括标志位) res = ~10 #-11 -(n+1) #4、 按位异或 ^ (二进制-----------值同出0 异出1) #5、 左移 << (5<<1,000...101--->000...1010) res = 5 << 1 #10 5*2**1 res = 5 << 2 #20 5*2**2 res = 5 << 3 #40 5*2**3 #6、 右移 >> (5>>1,000...101--->000...010) res = 5 >> 1 #2 5//2**1 res = 5 >> 2 #1 5//2**2 res = 5 >> 3 #0 5//2**3
8、运算符总结
""" (1) 个别运算符: 1.1优先级最高**幂运算 1.2优先级最低=赋值运算符 1.3()括号可以提升运算优先级 (2)整体 一元运算符 > 二元运算符 一元运算符:同一时间,只操作一个值-~ 二元运算符:同一时间,操作两个值+-*/... (3) 同一层级 逻辑: () > not > and > or 位运算符:( << >> ) > & > ^ > | (4)其他运算符 算数运算符 > 位运算符 > 比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符 > 赋值运算符 """