(1)算数运算符: + - * / // % **(2)比较运算符: > < >= <= == != (3)赋值运算符: = += -= *= /= //= %= **=(4)成员运算符: in 和 not in (针对于容器型数据)(5)身份运算符: is 和 is not (检测两个数据在内存当中是否是同一个值) (6)逻辑运算符: and or not(7)位运算符: & | ~ ^ << >>
python运算符 | 注意点 |
---|---|
算数运算符 | % 取余 , //地板除 , ** 幂运算 |
比较运算符 | == 比较两个值是否相等 != 比较两个值是否不同 |
赋值运算符 | a += 1 => a = a+1 |
成员运算符 | in 或 not in 判断某个值是否包含在(或不在)一个容器类型数据当中 |
身份运算符 | is 和 is not 用来判断内存地址是否相同 |
逻辑运算符 | 优先级 () > not > and > or |
位运算符 | 优先级 (<<或 >> ) > & > ^ > | 5 << 1 结果:10,5 >> 1 结果:2 |
var1 = 6var2 = 2
1): + 加法
res = var1 + var2
2): - 减法
print(6-2)
3): * 乘法
print(6*2)
4): / 除法
print(6/2)
5): // 地板除(整除):如果除数或者被除数存在小数,那么就在结果上.0
print(6//3.5)
6): % 取余
print (5%3)print(6%2)print(10%3)
7): 负数取余
print(-7 % 4) #-3+4 = 1print(7 % -4) # 3+(-4) = -1print(-7 % -4) # -3把余数先算出来,然后前面带个负号即可print (-86 % 3)print(86 % (-3))print((-86) % (-3))
8): ** 幂运算
print(3**3)print(3**2)(二).比较运算符: > < >= <= == != 只会产生bool类型 True 和False
var1 = 8var2 = 10print(var1 > var2)print(var1 < var2)print(var1 >= var2) #大于或者等于,有一个条件满足即可print(var1 <= var2) #小于或者等于,有一个条件满足即可print(var1 == var2) # 比较二个值是否相等"""赋值=,将右侧的值赋值给左侧var1var1 = var2==:比较二个变量的值是否相同,返回True或者Falsevar1 == var2"""print(var1 != var2)(三).赋值运算符: = += -= *= /= //= %= **=
var1 = 10var2 = 2#= 从右向左看,将右侧的值赋值给左侧变量#var1 = var2#print(var1,var2)
1) +=
var1 = var1 + var2 或者 var1 += var2
2) -=
var1 =var1 - var2 或者 var1 -= var2
3) *=
var1 = var1 * var2 或者 var1 *= var2
4) /=
var1 = var1 / var2 或者 var1 /= var2
5) //=
var1 = var1 // var2 或者 var1 //= var2
6) %=
var1 = var1 % var2 或者 var1 %= var2
7) **=
var1 = var1 ** var2 或者 var1 **= var2(四).成员运算符: in 和 not in (针对于容器型数据)
1) str 必须是一段连续的片段
strvar = strvar = "如果遇到你是一种错,那我宁愿一错再错"print("如果" in strvar)print("遇到" in strvar)print("宁 错" in strvar)
2) List tuple set
List_var = ["taibai","wusir","alex",'wuchao']tuple_var = ("taibai","",'wuchao')set_var = {"taibai",'wuchao'}res = "taibai" in List_varprint(res)res = "wusir" in tuple_varprint(res)res = "alex" in set_varprint(res)
3) dict,in 或者not in 在字典当中判断的是键
dict_var = {1:"taibai",2:"wusir",3:"alex",4:'wuchao'}(五).身份运算符:is 和is not (检测两个数据在内存当中是否是同一个内存地址)
1)整型 -5~正无穷
var1 = 10var2 = 10res =var1 is var2print(res)print(ID(var1),ID(var2))
2)浮点型 非负数
var1 = -6.7var2 = -6.7res = var1 is not var2print(res)
3)布尔型 只要值相同即可
var1 = Truevar2 = Trueres = var1 is var2print(res)
4)complex 实数 + 虚数 永远不同,值有虚数列外
var1 = 1jvar2 = 1jprint(var1 is var2)
5)判断类型
# int float complex bool str List tuple set dictres = isinstance(15,int)res = isinstance(3.56,List)# 把可能的类型放在元组里,有一个满足条件,即返回真.res = isinstance([1,2,3],(int,float,str,List) )print(res)(六).逻辑运算符: and or not
1)and 逻辑 与
"""全真则真,一假则假"""res = True and True # 真res = True and False # 假res = False and True # 假res = False and False# 假print(res)
2)or 逻辑 或
"""全假则假,一真则真"""res = True or True # 真res = True or False # 真res = False or True # 真res = False or False# 假print(res)
3)not 逻辑 非
"""真变假,假变真"""res = not Trueprint(res)res = not Falseprint(res)
4)逻辑短路:如果出现短路,后面的代码不执行
(1)True or 值(2)False and 值res = print(123)print(res) #None等于没有返回值,是系统自定义的#如果出现短路,后面的代码不执行True or print(3333) # 1False and print(88888) # 2res = 5 or 6print(res)res = 5 and 6print(res)res = 0 and 8print(res)
5)逻辑运算符的优先级
() > not > and > or#案例1 #True or 表达式 直接短路 直接返回前面的值res = 5 or 6 and 7 # 5 or 7 = 5print(res)res = (5 or 6) and 7 #5 and 7 =7print(res)res = not (5 or 6 ) and 7 #not (5) and 7 =Falseprint(res)#在确定不了是否短路时候,通过优先级先算and 再算orres = False and 7 or 9 and 10 #False or 10print(res)#案例2res = 5 > 8 and 7 < 9# res = False and True = Falseres = 6 < 10 or 7 > 10res = 7>90 and 5>3 or 11<19 and 20<80 or 1>-9# False and True or True and True or True# False or True or True => Trueprint(res)(七)位运算符: & | ~ ^ << >> 针对的是二进制
1)按位与 &
var1 = 19var2 = 15print(var1 & var2)"""分解过程:000 ... 10011000 ... 01111000 ... 00011 """
2)按位或 |
var1 = 19var2 = 15print(var1 | var2)"""分解过程:000 ... 10011000 ... 01111000 ... 11111"""
3)按位异或 ^ 两者如果不相同则为真,相同则为假
var1 = 19var2 = 15print(var1 ^ var2)"""分解过程:000 ... 10011000 ... 01111000 ... 11100"""
4)<< 左移 5 * 2的2次幂
res = 5 << 2print(res)"""分解过程:000 ... 101000 ..10100"""
5)>> 右移 5 // 2的1次幂
res = 5 >> 1print(res)"""分解过程:000 ... 101000 ... 010"""
6) 按位非 ~ [针对于补码进行 *** 作 每一位取反,包括符号位]
var1 = ~19print(var1)"""原码:000 ... 10011反码:000 ... 10011补码:000 ... 10011补码:000 ... 10011按位非:111 ... 01100补码:111 ... 01100反码:100 ... 10011原码:100 ... 10100 -20"""var1 = ~(-19)print(var1)"""原码:100 ... 10011反码:111 ... 01100补码:111 ... 01101补码: 111 ... 01101按位非:000 ... 10010# 正数的原码 == 反码 == 补码000 ... 10010 => 18"""
总结:
(1) 个别运算符: 优先级最高的 ** 幂运算 优先级最低的 = 赋值运算 () 括号可以提升运算的优先级 (2) 整体一元运算符 > 二元运算符 一元运算符:同一时间, *** 作一个值.[-,~] 二元运算符:同一时间, *** 作两个值.[+,-] (3) 注意点 乘除 > 加减 () > not > and > or ( << >> ) > & > ^ > |(4) 其他情况 算数运算符 > 位运算符 > 比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符 赋值运算符 用来将算好的值 赋值给左侧变量. 用来收尾;总结
以上是内存溢出为你收集整理的python运算符全部内容,希望文章能够帮你解决python运算符所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)