python的运算符


01.python语言使用的运算符包括:

  • 算数运算符:
    • +,加法运算。
    • -,减法运算。
    • *,乘法运算。
    • /,自然除运算,计算结果为浮点数。
    • //,整除运算,整除运算,计算结果取向下(小的数字)取整数部分。
    • %,取余,计算结果取余数部分。
    • **,乘方运算。
  • 位运算:
    • &,与运算,将两个数值转换为原码之后比较对应位置,都是1取1,否则取0。
      • 例如:5的原码为0000 0101,2的原码为0000 0010,5&2之后的到0000 0000,值为0。
    • |,或运算,将两个数值转换为原码之后比较对应位置,只要有一个1就取1,否则取0。
      • 例如,5的原码为0000 0101,2的原码为0000 0010,5|2之后的到0000 0111,值为7。
    • ^,异或,将两个数值转换为原码之后比较对应位置,相同的位取0,不同的位取1。
      • 例如,10为0000 1010,9为0000 1001,10^9之后得到0000 0011,值为3。
    • ~,取反,将数值转换为原码之后按位取反再转换为补码。
      • 例如:12的原码为0000 1100,按位取反后为1111 0011,补码为1000 1101,~12值为-13。
    • <<,左移,将数值转换为原码之后整体向左移动n位。
      • 例如:8的原码为0000 1000,8 << 2,整体向左移动2位的结果为0010 0000,值为32。
    • >>,右移动,将数值转为为原码之后整体向右移动n位。
  • 比较运算符:
    • ==,左右两边的对象的值是否相等(包括数据类型);相等返回True,否则返回False。
    • !=,左右两边的对象的值是否不相等(包括数据类型);不相等返回True,否则返回False。
    • >,左边的对象的值是否大于右边的对象的值,大于返回True,否则返回False。
    • <,左边的对象的值是否小于右边的对象的值,小于返回True,否则返回False。
    • >=,左边的对象的值是否大于等于右边的对象的值,大于等于于返回True,否则返回False。
    • <=,左边的对象的值是否小于等于右边的对象的值,小于等于于返回True,否则返回False。
    • 比较运算符支持链式:
      • 例如:5 > 4 > 3
  • 逻辑运算符:
    • and,与运算,and左右两边的表达式同时为True,则返回True,否则返回False,比如:
      if 5 > 4 and 9 > 8:
          print('OK')
    • or,或运算,and两边的表达式有任意一边为True,则返回True,否则返回False,比如:
      if 5 > 4 or 7 > 8:
          print('OK')
    • not,非运算,如果not右边的表达式为True,则返回False,否则返回True,比如:
      if not 12 < 9:
          print('OK')
  • 赋值运算符:
    • =,将=右边的值赋予=左边的标识符,被赋值的标识符称为变量,比如:
      var = "hello world"
      • =号支持链式表达,例如:x = y = z = 5。
    • +=、-=,*=等:
      • 可变对象中,x += 1等同于x = x + 1,即创建一个变量x,将原变量x+1的值赋予新的变量x。
      • 不可变对象中:
        • x += 1,修改变量x自身的值。
        • x = x +1,即创建一个变量x,将原变量x+1的值赋予新的变量x。
  • 成员运算符:
    • in,in右侧的内容里,是否包含了左侧的内容;包含返回True,否则返回False。
    • not in,not in右侧的内容里,是否不包含了左侧的内容;不包含返回True,否则返回False。
  • 身份运算符:
    • is,is两侧的内容,是否执行id()函数的结果一致,是返回True,否则返回False。
    • is not,is not两侧的内容,是否执行id()函数的结果不一致,不一致返回True,否则返回False。


02.python运算符的优先级:

  • 以下表格展示了python运算符从高至低的优先级:
优先级 Python运算符 Python运算符说明
1 () 小括号。
2 ** 乘方。
3 ~ 按位取反。
4 +(正号),-(负号) 符号运算符。
5 *、/、//、% 乘法和除法。
6 +、- 加法和减法。
7 >>、<< 左移和右移。
8 & 按位与运算。
9 ^ 按位异或运算。
10 | 按位或运算。
11 ==、=!、>、<、>=、<= 比较运算符。
12 is、is not 身份运算符。
13 in、not in 成员运算符。
14 not 逻辑非运算。
15 and 逻辑与运算。
16 or 逻辑或运算。
17 exp1, exp2 逗号运算符。
文档更新时间: 2020-04-02 20:55   作者:闻骏