python运算符

python运算符,第1张

概述(1)算数运算符: + - * / // % **(2)比较运算符: > < >= <= == != (3)赋值运算符: = += -= *= /= //= %= **=(4)成员运算符: in 和 not in (针对于容器型数据)(5)身份运算符: is 和 is not (检测两个数据在内存当中是否是同一个值) (6)逻辑运算符: and or not(7)位运
(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运算符所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1191957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存