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
    • 位运算符: (<<、>>) > & > ^ > |

    整体排序

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

  • 相关阅读:
    pip不是内部或外部命令也不是可运行的程序或批处理文件的问题
    动态规划 leetcode 343,279,91 & 639. Decode Ways,62,63,198
    动态规划 70.climbing Stairs ,120,64
    (双指针+链表) leetcode 19. Remove Nth Node from End of List,61. Rotate List,143. Reorder List,234. Palindrome Linked List
    建立链表的虚拟头结点 203 Remove Linked List Element,82,147,148,237
    链表 206 Reverse Linked List, 92,86, 328, 2, 445
    (数组,哈希表) 219.Contains Duplicate(2),217 Contain Duplicate, 220(3)
    重装系统
    java常用IO
    端口
  • 原文地址:https://www.cnblogs.com/kangyz/p/13860337.html
Copyright © 2011-2022 走看看