zoukankan      html  css  js  c++  java
  • Python七种运算符

    算术运算符

    算数运算符包含有+(加)、-(减)、*(乘)、/(除)、//(地板除)、**(幂运算)、%(取余)

    / (结果为小数)

    var1 = 2
    var2 = 2
    res = var1 / var2
    print(res)
    

    //

    • 被除数 ➗ 除数 = 商
    • 注意点:如果被除数或者除数是小数,那么在正常结果后加上.0变成小数
    var1 = 2
    var2 = 2.0
    res = var1 // var2
    print(res)
    

    %

    var1 = 7
    var2 = 4
    res = var1 % var2
    print(res) # 3
    
    var1 = -7
    var2 = 4
    res = var1 % var2
    print(res) # -3 + 4 = 1
    
    var1 = 7
    var2 = -4
    res = var1 % var2
    print(res) # 3 + (-4) = -1
    
    var1 = -7
    var2 = -4
    res = var1 % var2
    print(res) # -3
    

    **

    res = 3 ** 2
    print(res)
    

    比较运算符

    • 比较运算符包含有>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)
    • 比较运算符的结果要么是True,要么是False,只有两个值

    ==

    # 这个符号是在做比较,比较==两边的数值是否一样
    res = 5 == 9
    print(res)
    

    赋值运算符

    赋值运算符包含有=、+=、-=、*=、/=、//=、%=、**=

    = 将右侧的值赋值给左侧变量

    a = 5 <= 3
    print(a)
    

    *=

    """
    var1 *= var2 相当于 var1 = var1 * var2
    """
    var1 *= var2
    print(var1)
    

    成员运算符

    • 成员运算符包含有in、not in(针对于容器型数据)
    • in或not in是判断某个值是否包含在(或不在)一个容器类型数据当中
    • 字符串判断时,必须是连续的片段
    • 针对于字典,判断的是字典的键,而不是字典的值
    strvar = "今天天气要下雨,赶紧回家收衣服"
    res = "今" in strvar
    res = "赶回" in strvar
    print(res)
    

    身份运算符

    身份运算符包含有is和is not(检测两个数据id是否相同),可参考python3.6变量缓存机制

    逻辑运算符

    逻辑运算符包含有and、or、not

    and 逻辑与

    """全真则真,一假则假"""
    res = True and True    # True
    res = True and False   # False
    res = False and True   # False
    res = False and False  # False
    print(res)
    

    or 逻辑或

    """一真则真,全假则假"""
    res = True or True    # True
    res = False or True   # True
    res = True or False   # True 
    res = False or False  # False
    print(res)
    

    not 逻辑非

    res = not True
    res = not False
    print(res)
    

    逻辑短路的两种情况

    如果短路,无论后面的表达式是True还是False都已经无法改变结果,后面的代码不执行

    • (1) True or 表达式
    • (2) False and 表达式

    位运算符

    位运算符包含有&(按位与)、|(按位或)、^(按位异或)、<<(左移)、>>(右移)、~(按位非)

    & 按位与

    var1 = 19
    var2 = 15
    res = var1 & var2
    """
    000 ... 10011
    000 ... 01111
    000 ... 00011 => 3
    

    ^ 按位异或

    """
    两个值不相同,返回True
    两个值相同,返回False
    """
    var1 = 19
    var2 = 15
    res = var1 ^ var2
    """
    000 ... 10011
    000 ... 01111
    000 ... 11100
    """
    

    << 左移与>> 右移

    """
    左移:m乘n的n次幂
    右移:m地板除n的n次幂
    """
    # res = m << n
    res = 5 << 3 # 40
    res = 5 >> 1 # 2
    print(res)
    

    ~ 按位非

    # 针对于补码进行操作,按位取反,包含每一位
    # 计算公式:-(n+1)
    res = ~19
    print(res)
    """
    原码:000 ... 10011
    反码:000 ... 10011
    补码:000 ... 10011
    
    补码:   000 ... 10011
    按位非: 111 ... 01100
    
    补码:111 ... 01100
    反码:100 ... 10011
    原码:100 ... 10100 => -20
    """
    

    总结

    个别运算符

    • 运算符优先级最高: **
    • 运算符优先级最低: =
    • () 可以提升优先级

    同一种类运算符

    • 算术运算符: 乘除 > 加减
    • 逻辑运算符: () > not > or
    • 位运算符: (<<、>>) > & > ^ > |

    整体排序

    算数运算符 > 位运算符 > 比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符 > 赋值运算符

  • 相关阅读:
    真的要努力了
    实事求是
    要努力了
    新征程,新目标
    真的要放弃了吗
    集中力量 主攻文科
    May the force be with me.
    记录级排名
    Android开发过程中git、repo、adb、grep等指令的使用
    Ubuntu环境变量设置
  • 原文地址:https://www.cnblogs.com/kangyz/p/13860337.html
Copyright © 2011-2022 走看看