加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

运算符 Operator 及优先级

发布时间:2020-12-20 10:19:09 所属栏目:Python 来源:网络整理
导读:算数运算符 + - * / ** % /表示自然除,结果是浮点数。//为整除。python2.x版本/和//都是整除。 位运算符 | ~ ^ 和的运算:乘除2的整数倍。例如:162 相当于 16//2**2,42 相当于4*2**2 比较运算符 ==? ? !=? ? ? ? ? ?=? ?= 返回boolean值? 链式比较操作 4x

算数运算符

  • + - * / ** %
  • /表示自然除,结果是浮点数。//为整除。python2.x版本/和//都是整除。

位运算符

  • & | ~ ^ << >>
  • <<和>>的运算:乘除2的整数倍。例如:16>>2 相当于 16//2**2,4<<2 相当于4*2**2

比较运算符

  • ==? ? !=? ? >? ? <? ?>=? ?<= 返回boolean值?
  • 链式比较操作 4>x >=2?

逻辑运算符

  • 与 或 非 and or not
  • 短路:
  1. and 如果第一个表达式为False,后面不用计算了,都为False,可以将and看作是做“乘法运算“。
  2. or如果第一个表达式返回True,后面不用计算了,都为True,可以将or看作是做“加法运算”。

赋值运算符

  • 等号:a = 5
  • +=? ?-=? *=? /=? %=
  • x = y = z = 1

成员运算符

  • in、not in

身份运算符

  • is、 is not

运算符优先级(由高到低)

运算符  描述
‘expr‘ 字符串转换
{key:expr,...} 字典
[expr1,expr2...] 列表
(expr1,expr2,...) 元组
function(expr,...) 函数调用
x[start:stop:step] 切片
x[index] 下标索引取值
x.attribute 属性引用
~x 按位取反
+x,-x 正,负
x**y
x*y,x/y,x%y

乘,除,取模

x+y,x-y

加,减

x << y,x>>y 位移
x&y 按位与
x^y 按位异或
x|y 按位或

x < y,x <= y,x==y,

x!=y,x>=y,x>y

比较
x is y,x is not y 等同测试
x in y,x not in y 成员判断
not x 逻辑否
x and y 逻辑与
x or y 逻辑或
lambda arg,....:expr Lambda匿名函数

优先级:算数运算符 > 位运算符 > 身份运算符 > 成员运算符 > 逻辑运算符

逻辑与或和按位与或的区别:

  1、相似点:

    逻辑与和按位与的执行结果是一样的;逻辑或和按位或的执行结果也是一样的。

  2、不同点:

    逻辑与和逻辑或执行时,只需要判断第一个条件的真假就能得出整个条件的真假,不需要判断第二个条件;

    按位与和按位或执行时,需要判断第一个条件的真假就能得出整个条件的真假,但是还需要对后面的条件进行判断,并且最后把这些条件的结果结合起来才返回 整个条件的真假。

  由此看来,逻辑与或的执行效率比按位与或的效率高

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读