常见运算符

常见运算符

常见运算符有:

加(+)、减(-)、乘(*)、除(/)、等于(==)、取商(//)、取余(%)、赋值运算符(=)

print(10 + 4)
print(10 - 4)
print(10 * 4)
print(10 / 4)
print(10 == 4)
print(10 // 4)
print(10 % 4)
num = 10
print(num)

增量赋值

    x += 100   # x = x + 100
    y -= 100   # y = y - 100
    z *= 100   # z = z * 100
    m /= 100   # m = m / 100

链式赋值

     x = 100
     y = 100
     z = 100
     #上述三个式子可以简化为:
     x = y = z = 100

交叉赋值

     m = 100
     n = 200
     怎么样令m 与 n的值交换呢?
     常见错误形式:
     m = n 
     n = m
     print(m, n)  # 这样完全是错误的,根据赋值符号的本质可以知道。这样处理厚的m、n都是200

正确形式有两种:

     1. 通过中间变量进行交换(过于繁琐不予推荐)
          m = 100
          n = 200
          tem = m
          m = n
          n = tem
          print(m, n)
    2. 通过交叉赋值
          m = 100
          n = 200
          m, n = n, m
          print(m, n)

解压赋值:取开头和结尾的几个值

      salary=[21,15,13,9,26]
      x=salary[0]
      y=salary[1]
      z=salary[2]
      a=salary[3]
      b=salary[4]
      print(x, y, z, a, b)
      这样从列表里取每个值并赋值给另一个变量名过于麻烦,可以用解压赋值来解决这类问题。
    方式一:
      x,y,z,a,b=salary  # 这样解压赋值时赋值符号左边的变量名必须与右边数值个数相等,不可多,不可少
      print(x, y, z, a, b)  
    方式二:
      x, y, *zab = salary  # 这样解压赋值时是取前面两个值分别赋给 x 和 y,剩余的存在列表里赋值给*zab
      print(x, y, *zab)
      x, *abc, z = salary  # 这样解压赋值时是分别取最前和最后两个值分别赋给 x 和 b,剩余的存在列表里赋值给*yza
      print(x, *yza, b)
                           # 无用的数据复制给一个列表的时候,为了满足语法,可以用下划线做变量名,指向无用数据

逻辑运算符

 逻辑运算符有三种,分别是与(and)、或(or)、非(not)

    1. 与(and)  # 表示且的意思,即所有的条件都要满足,结果才能是True。
       2 > 1 and 1 = 1 and True and 3 > 2  # 结果为True
       2 < 1 and 1 = 1 and True and 3 > 2  # 结果为False
    2. 或(or)  # 表示或者的意思,只要条件里有一个满足的结果就为True;一个条件都不满足结果才为False
       2 < 1 or 1 != 1 or False or 3 < 2  # 结果为True
       2 < 1 or 1 != 1 or False or 3 > 2  # 结果为False
    3. 非(not)  #not 会造成条件翻转,使False变成True,使True变成False。
       not True  # 结果为False
       not False  # 结果为True
    # 这三种逻辑运算符混合使用时有优先级,不过一般不需要记忆。我们在进行编程时应该提前规定好。
      (3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
      print((3 > 4 and 4 > 3) or   (not ((1 == 3 and 'x' == 'x')) or 3 > 3))

成员运算

    成员运算的主要运算是判断某个数据是否在摸个群体内。
    add_list = ['商丘', '郑州', '上海', '武汉', '杭州', '北京', '香港']
    print('上海' in add_list)  # True
    print('长沙' in add_list)  # False

身份运算

    1. is:判断两个数据的内存地址是否一致 
    2. ==:判断两个数据的值是否一致

     l1 = ['cheng', 'kong', 'wang']
     l2 = ['cheng', 'kong', 'wang']
     print(id(l1),id(l2))  # print(id(l1),id(l2))得到的俩个不相等的内存地址
     print(l1 == l2)  # 得到的是true
     print(l1 is l2)  # 得到的是false
    # 很明显通过上面的也能知道is是判断俩个成员的id是否相等
    # 而==判断的是俩个成员的值是否相等

    # 值相等id不一定相等
    # 内存地址相等值一定相等
posted @ 2022-03-06 17:42  Oliver-Chance  阅读(812)  评论(0编辑  收藏  举报