• 03-02python运算符


    运算符

    算术运算符

    运算符 描述 实测
    + 加:两个对象相加 1+1=3
    - 减:第一个数减去第二个数 1-1=0
    * 乘;两个对象相乘 1*1=1
    / 除;第一个数除以第二个数 1/1=1
    ** 幂:返回x的y此幂 10**20 10的20次方
    // 取整除:返回商的整数部分 9//2=4.5取整就是4
    % 取模:返回除法的余数 9%2=4.5无法整除返回为1
    9.2%2=1.1999999999999993详情参考Python中的取模运算

    算术运算符只能对int和float做运算
    自然除就是我们正常理解的数学计算,取整除是取结果的整数部分
    在python3中,所有的除法都是自然除,返回的都是float;python2中的除法都是取整除,返回的都是int

    例7:运算
    In [22]: 1 + 1
    Out[22]: 2
    
    In [23]: 1 + 1.2    # 会隐式转换为float进行计算
    Out[23]: 2.2
    
    In [24]: type(1 + 1.2)
    Out[24]: float
    
    例8:python2与python3除法区别
    In [25]: 3 / 2   # python3自然除
    Out[25]: 1.5
    >>> 3 / 2        # python2整除
    1
    
    >>> float(3) / 2   # python2中自然除的方法
    1.5
    
    >>> 5.0 / 2    # python2中自然除的方法
    2.5
    
    例9:python3的除法,返回全部都是float
    In [27]: type(4/2)                                                                                                                                                               
    Out[27]: float
    

    比较运算符

    • >:大于
    • <:小于
    • ==:等于
    • !=:不等于,python2中有<>不等于的写法,但是在python3中已废弃
    • >=:大于或等于
    • <=:小于或等于

    注意:比较运算的返回值都是bool类型

    例9:比较运算符
    In [27]: 3 > 5
    Out[27]: False
    
    In [28]: 5 > 3
    Out[28]: True
    
    In [29]: 5 != 3
    Out[29]: True
    

    逻辑运算符

    • and:与
    • or:或
    • not:非

    逻辑运算符的操作数都是bool类型或者可以隐式转换成bool类型的类型,返回值都是bool类型

    例10:逻辑运算符
        逻辑运算符的操作数都是bool类型或者可以隐式转换成bool类型的类型,返回值都是bool类型
    
        In [30]: True and False    # 双方都必须为真
        Out[30]: False
    
        In [31]: True or False    # 需要一方为真就返回True
        Out[31]: True
    
    例11:逻辑运算符经常用作短路操作; 短路操作基本不会用到not
        In [32]: def true():
            ...:     print('true')
            ...:     return True
            ...: def false():
            ...:     print('false')
            ...:     return False
            ...:
        # or当第一个为真后面的就不执行了, 如果第一个为False则会继续执行后面的,如果都执行失败,则返回Flase, 但只要一个成功就返回True
        In [29]: true() or false()                                                                                                                                           
        true
        Out[29]: True
    
        In [30]: false() or true()                                                                                                                                                       
        false
        true
        Out[30]: True
    
        In [34]: true() and true()        # and指定前面为true然后继续执行后面的, 如果都为true, 就返回true
        true
        true
        Out[34]: True
    
        In [36]: true() and false()    # and先执行第一个函数返回为true,继续执行第二个函数, 如果第二个函数为false就返回false
        true
        false
        Out[36]: False
    
        In [37]: false() and true()
        false
        Out[37]: False
    
        该例子可以拆分两个部分:
            1、是否执行了
            2、返回的结果
    
        短路操作:从左到右执行, 当已经有结果的时候, 将停止计算, 提前返回
            也就是说, 当判断式已经确定时, 不再继续处理后续表达式。 && 在失败时中断, ||在成功时中断。
    
    例12:逻辑计算
        # 0为false
        # 整数都为true
        # None为false
        * 空列表、空元组等都是false
        In [32]: bool(0)                                                                                                                                                                 
        Out[32]: False
    
        In [33]: bool(2)                                                                                                                                                                 
        Out[33]: True
    
        In [35]: bool(None)                                                                                                                                                               
        Out[35]: False
    
    
        In [38]: 0 and 1
        Out[38]: 0
    
        In [39]: 0 and True
        Out[39]: 0
    
        In [40]: None and True
    
        In [41]: True and None
    
        In [42]: 1 and True
        Out[42]: True
    

    成员运算符

    和集合类型相关,在集合类型时会介绍

    身份运算符

    和面向对象相关,在面向对象时会介绍

    位运算符

    • <<:左移
    • >>:右移
    • &:按位与
    • |:按位或
    • ^:按位取反
      一般用在网络底层开发中,用的非常少
      位运算符是直接操作二进制的

    运算符优先级(当运算符在一起运算时)

    • 乘法运算比取模运算优先级要高
    • 算术运算 > 比较运算 > 逻辑运算
      • 可以通过括号改变优先级,所以一般不确定的要其优先级高则直接用括号
    • 拿不准或者表达式比较复杂的适合,直接使用括号来决定优先级
    例13:运算符的优先级
        In [43]: 3 + 1 * 4
        Out[43]: 7
    
        In [44]: 3 * 4 ** 2
        Out[44]: 48
    
        In [45]: 3 * 4 % 3    # 乘法运算比取模运算优先级要高
        Out[45]: 0
    
        In [50]: 3 - 4 % 2
        Out[50]: 3
    
    例14:比较运算与逻辑运算
        In [51]: 3 > 5 and 5 > 3
        Out[51]: False
    
        In [52]: 3 + 6 > 7
        Out[52]: True
    
        算术运算 > 比较运算 > 逻辑运算
        可以通过括号改变优先级
    

    赋值运算符(比较特殊)

    上述运算符都会返回结果,而赋值运算符是不会返回结果的
    **参考如下实例,一句话概括赋值运算符:把右边计算的结果赋值给左边
    赋值运算符是可以和算数运算符一起使用的

    例15:赋值运算,把右边的值赋给左边,如果右边是个表达式,它会进行计算
        In [53]: i = 3 + 58
    
        In [54]: i
        Out[54]: 61
    
        In [55]: i /= 5
    
        In [56]: i
        Out[56]: 12.2
    
    例16:赋值运算符和算数运算符一起使用
        In [36]: i = 8                                                                                                                                                                   
    
        In [37]: i += 3                                                                                                                                                                  
    
        In [39]: i                                                                                                                                                                       
        Out[39]: 11
    
  • 相关阅读:
    ASP.NET MVC实现通用设置
    C# Redis的操作
    Jquery Ajax向服务端传递数组参数值
    ASP.NET 通过配置hiddenSegment禁止目录下资源通过Url形式访问
    Jquery组织Form表单提交之Form submission canceled because the form is not connected
    Entity Framework工具POCO Code First Generator的使用
    ASP.NET MVC 5搭建自己的视图基架 (CodeTemplate)
    Jquery Ajax 提交json数据
    使用Reflector反编译并提取源代码
    ASP.NET MVC下Bundle的使用
  • 原文地址:https://www.cnblogs.com/cishi/p/12942149.html
Copyright © 2020-2023  润新知