(一)算数运算符: + - * / // (取整)%(取余) **(幂运算)
加减乘除就不说了,和数学当中的一样,这里重点说下//,%和**
(1)// (取整数) 两个数在进行地板除的时候,有一个数是小数,就在最后的结果上加.0
var1 = 10 var2 = 5 var3 = 3.5 res1 = var1 // var2 res2 = var1 // var3 print(res1) print(res2)
执行结果 2 2.0
(2)% 取余
res1 = 10 % 3.5 res2 = 99 % 7 res3 = -99 % 7 res4 = 99 % -7 print(res1) print(res2) print(res3) print(res4)
执行结果
3.0 1 6 -6 # 再来看下执行结果,是不是一脸懵逼,小学数学是不是感觉白学了,想了半天之后.....瞎说,小学老师可不教这个,算了,不卖关子了 第一个和第二个执行结果应该都没问题 第三个 :先算99%7 = 1,除数是负数,在余数前加上-号,然后加上被除数,所以结果是 -1+7 = 6 第四个 :先算99%7 = 1,被除数是负数,在被除数前加上-号,然后加上余数,所以结果是 1-7 = -6 双击6666了..............老铁
(3) ** 幂运算
print(2**3) print(4**3) 执行结果: 8 64
(二)比较运算符: > < >= <= == !=
# 比较运算符只会产生2个结果 要么True 要么False var1 = 15 var2 = 18 res = var1 > var2 print(res) # False res = var1 < var2 print(res) # True res = var1 >= 15 # 只要满足一个条件即为真 print(res) # True res = var1 <= 15 print(res) # True res = var1 == var2 # ==是判断两个值是否相等(is是判断两个元素id值是否一致,返回True或False) print(res) # False res = var1 != var2 # 不等于 print(res) # True
(三)赋值运算符: = += -= *= /= //= %= **=
var1 = 9 var2 = 5 res = var1 print(res) var1 += var2 # var1 = var1 + var2 print(var1) var1 -= var2 # var1 -= var2 print(var1) var1 *= var2 # var1 *= var2 print(var1) var1 /= var2 # var1 = var1 / var2 print(var1) var1 //= var2 # var1 = var1 // var2 print(var1) var1 %= var2 # var1 %= var2 print(var1) var1 **= var2 # var1 **= var2 print(var1) 执行结果 9 14 9 45 9.0 1.0 1.0 1.0
(四)成员运算符: in 和 not in (针对于容器型数据),判断某个元素在不在某个容器里面
#(1)str 字符串需要是一个连续的片段 strvar = "如果遇到你是一种错,我宁愿一错再错" res1 = "你" in strvar res2 = "遇到" not in strvar res3 = "我一" in strvar print(res1) # True print(res2) # False print(res3) # False #(2)list tuple set listvar = ["周全","陈鹏","陈根基"] res = "周全" in listvar print(res) # True tuplevar = "王新元","叶欣荣","秋波好","刘鹏程" res = "叶欣荣" not in tuplevar print(res) # False setvar = {‘周立飞‘,‘高辉‘} res = "高辉" in setvar print(res) # True #(3)dict 注意 : 判断的是键 不是值 dictvar = {"zdx":"无用","gss":"石阡","mlh":"杜十娘"} res = "杜十娘" in dictvar res = "mlh" not in dictvar # True print(res)
(五)身份运算符: is 和 is not (检测两个数据在内存当中是否是同一个值,返回True或False)
var1 = 56 var2 = 56 res1 = var1 == var2 # (判断两个值是否相等) res2 = var1 is var2 # (判断两个值得地址是否相等) res3 = var1 is not var2 print(res1) print(res2) print(res3) 执行结果 True True False
(六)逻辑运算符: and or not
# (1)and 逻辑与 # 全真则真,一假则假 res1 = True and True res2 = False and True res3 = False and False res4 = True and False print(res1) # True print(res2) # False print(res3) # False print(res4) # False # (2)or 逻辑或 # 全假则假,一真则真 res5 = True or True res6 = True or False res7 = False or True res8 = False or False print(res5) # True print(res6) # True print(res7) # True print(res8) # False #(3)not 逻辑非 相当于取反 res9 = not True res10 = not False print(res9) # False print(res10) # True # (4)逻辑短路 ‘‘‘ False and 布尔 在and左边如果时False 逻辑短路 右侧不执行 True or 布尔 在or左边如果是True 逻辑短路 右侧不执行 在开发当中 ,当成"开关"使用 ‘‘‘ False and print(123) # 逻辑短路 # False True or print(456) # 逻辑短路 # True True and print(789) # 789 # 逻辑运算符的优先级 () > not > and > or 括号的优先级是最高的
(七)位运算符: & | ~ ^ << >>
(1)按位与 &,两者都有,返回真 var1 = 19 var2 = 15 res = var1 & var2 print(res) # 3 """ 000000010011 000000001111 000000000011 # 3 """ (2)按位或 | 只要一个有,返回真 res = var1 | var2 print(res) # 31 ‘‘‘ 000000010011 000000001111 000000011111 # 31 ‘‘‘ (3)按位异或 ^ "如果两者不相同,返回真,两者相同返回假 res = var1 ^ var2 print(res) # 28 ‘‘‘ 000000010011 000000001111 000000011100 # 28 ‘‘‘ (4)<< 相当于 5 乘以 2的2次幂 res = 5 << 2 # 20 res = 4 << 3 # 4乘以2的3次幂 print(res) # 32 """ 000000101 # 相当于101向左移动了2个二进制位 000010100 # 20 """ (5)>> 相当于 5 除以 2的1次幂 res = 5 >> 1 print(res) # 2 """ 0000101 # 相当于101向右移动了1个二进制位 0000010 # 2 """ (6)~ 按位非 (针对于补码来进行操作 ,连符号位都要改变) 公式 -(n+1) res = ~19 print(res) # -20 """ 000000000010011 (补码) 111111111101100 (按位非-->取反作为新的补码计算) 111111111101100 (给补码求原码) 100000000010011 (反码+1) 100000000010100 (原码) => -20 按位非操作的是补码,如果实在记不住就记住公式: -(n+1) """
所有运算符的优先级: 小括号的优先级最高 () ** 符号优先级最高 = 符号优先级最低 乘,除 > 加减 () > not > and > or (<< >> ) > & > ^ > | 除此之外剩下的运算符参考以下: 算术运算符 > 位运算符 > 比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符 赋值运算符单独拿出来 , 用来把最后的结果进行赋值的
练习: 计算 4>5 and 5 <9>5<3 or 1>2 and 3<=3的结果
相当于: 4>5 and (5 <9 and 9 >5and 5<3) or 1>2 and 3<=3
False and False or False and True
False
原文地址:https://www.cnblogs.com/lyj910313/p/10798223.html
时间: 2024-10-20 00:25:25