基本运算符

0. 算术运算符


  • 加法:+
    num = 3 + 5
    print(num)
    
  • 减法:-
    num = 8 - 2
    print(num)
    
  • 乘法:*
    num = 20 * 5
    print(num)
    
  • 求幂:**
    num = 2 ** 3
    print(num)
    
  • 除法:/
    num = 10 / 4
    print(num)
    
  • 整除://
    num = 5.2 // 2
    print(num)
    
  • 取模:%
    num = 10 % 4
    print(num)
    
  • 整除求模 的应用场景
    # 九宫格 行索引 列索引
    num = 6
    row = num // 4
    col = num % 4
    
  • 注意
    • 不要除以 0
    • () 具有 最高 优先级

1. 赋值运算符


  • 简单:=,将等号 右边 的值赋值给等号 左边 的变量
    # 1. 在内存中开辟一块内存空间
    # 2. 将 100 存入该内存空间
    # 3. 返回该内存空间唯一标识
    num = 100
    
  • 复合:+=-=*=**=/=//=%=,先进行 算术运算 再进行 赋值操作

2. 比较运算符


  • 大于:>
    compare = 8 > 6
    print(compare)
    
  • 小于:<
    compare = 50 < 100
    print(compare)
    
  • 大于或者等于:>=
    compare = 66 >= 66
    print(compare)
    
  • 小于或者等于:<=
    compare = 88 <= 88
    print(compare)
    
  • 等于:==
    compare = 100 == 100
    print(compare)
    
  • 不等于:!=
    compare = 66 != 88
    print(compare)
    
  • is:比对唯一标识
    a = 10
    b = 10
    print(id(a), id(b))
    print(a is b)
    
    c = [1]
    d = [1]
    print(id(c), id(d))
    print(c is d)
    
  • 注意
    • 链状比较运算符:10 < a <= 66
    • 内部性能优化
      # 整数对象缓存
      1. 将在 "[-5, 256]" 之间的 "小整数对象" 放在 "small_ints" 中
      2. 在用这些 "小整数" 时,就从 "small_ints" 中取,不再去 "临时创建" 新的对象
      
      # 直接引用
      1. 整数
         1) 在一个 代码块 中创建的整数对象
         2) 如果在 该代码块中 存在 一个值 与 其相同的 对象
         3) 那么就 直接引用,不再创建 新的 整数对象 
      
      2. 不可变对象
         1) 在 同一个 代码块中的对象
         2) 只要是 值相同 的对象,就不会重复创建
         3) 而是 直接引用 已经存在 的对象
      

3. 逻辑运算符


  • 与:and
    • 一假则假
  • 或:or
    • 一真则真
  • 非:not
    • 真变假假变真
  • 注意
    • intfloat 类型进行算术运算时,结果会被提升为 float 类型
    • bool 类型的值,如果作为真假来判定,一般是 非零即真非空即真
      print(False or 3)
      print(bool(0))
      print(bool(""))
      print(bool(1))
      
    • 整个逻辑表达式的结果不一定只是 TrueFalse
      print(0 and True)
      print(1 and 3)
      print(1 or 3)
      print(0 or 3)
      print(0 or False)
      print(0 or False or 6)
      

你可能感兴趣的:(基本运算符)