• 写给小白的Python之007:运算符


    导读:

    1.算数运算符

    2.赋值运算符

    3.关系运算符

    4.逻辑运算符

    5.成员运算符

    6.身份运算符和isinstance( )

    7.位运算符

    8.运算符优先级

    9.表达式

     

    python支持以下几种运算符。

    一、算数运算符

    1. 双斜杠 // 除法总是向下取整。

    2. 从浮点数到整数的转换可能会舍入也可能截断,建议使用math.floor()math.ceil()明确定义的转换。

    3. Python定义pow(0, 0)和0 ** 0等于1。

    >>> 9/2.0
    4.5
    
    >>> 9//2.0
    4.0
    
    >>>-7 // 3  # 地板除
    -3

     

    二、赋值运算符

    赋值运算符

     

    复合赋值运算符

     

    >>> a, b = 1, 2
    
    >>> a
    1
    
    >>> b
    2

     

    三、关系运算符

    python中的关系(比较)运算符如下表:

     

    1. 八个比较运算符优先级相同。

    2. Python允许 x < y <= z 这样的链式比较,它相当于 x < y and y <= z 。

    3. 复数不能进行大小比较,只能比较是否相等。

    >>> 'abc'<'abd'
    True
    
    >>> [1,2,3]<[2,3,4]
    True
    
    >>> (1,2,3)<(1,3,2)
    True
    
    
    a = 10
    1<a<20  # True
    11<a<20  # False

     

    四、逻辑运算符

    python中的逻辑运算符如下表:

    1. and 也是个短路运算符,它只有在第一个运算数为True时才会计算第二个运算数的值。

    2. or 是个短路运算符,它只有在第一个运算数为False时才会计算第二个运算数的值。1. and 也是个短路运算符,它只有在第一个运算数为True时才会计算第二个运算数的值。

    3. not 的优先级比其他类型的运算符低,所以 not a == b 相当于 not (a == b) ,而 a == not b 错误的。

    >>> 1 and 2
    2
    
    >>> 1 and 0
    0
    
    >>> 0 and 1
    0
    
    >>> 0 or 1
    1
    
    >>> 1 or 0
    1
    
    >>> 1 or 2
    1
    
    >>> 2 or 1
    2
     
    
    >>> not ''
    >>> not 0
    >>> not []
    >>> not ()
    >>> not {}
    >>> not set()
    都返回  True。

     

    五、成员运算符

    Python提供了成员运算符,测试一个元素是否在一个序列(Sequence)中。

    注意:
    在对 字典 操作时,判断的是 字典的键。

     

    六、身份运算符

    如果两个变量取值相等,则 is返回 True。

    >>> a = 'hello'
    >>> b = 'world'
    
    >>> a is b
    False
    
    >>> c = 'hello'
    >>> a is c
    True
    
    >>> a = 1
    >>> b = 2
    >>> a is b
    False

    is 不是比较值相等。is比较的是两个变量的身份是否相等。

    ==是比较值是否相等。

    >>> a=1
    >>> b=2
    >>> a==b
    False
    
    >>> a=1
    >>> b=1
    >>> a is b
    True
    
    >>> a=1
    >>> b=1.0
    >>> a==b
    True
    
    >>> a is b
    False
    
    >>> id(a)
    1775594976
    >>> id(b)
    2079163814176

    >>> a={1,2,3}

    >>> b={2,1,3}

    >>> a==b

    True

    >>> a is b

    False

    >>> id(a)

    2079194213736

    >>> id(b)

    2079194214184

     

    >>> c=(1,2,3)

    >>> d=(2,1,3)

    >>> c==d

    False

    >>> c is d

    False

    >>> id(c)

    2079194209736

    >>> id(d)

    2079194209880

     

    扩展:isinstance( )

    >>> a='hello'
    >>> type(a) == int
    False
    
    >>> type(a) == str
    True      Py2.x中为False
    
    >>> isinstance(a,str)
    True      Py2.x中不支持
    
    >>> isinstance(a,int)
    False
    
    >>> isinstance(a,(int,str,float))
    True
    
    >>> isinstance(a,(int,float))
    False

    对象的三个特征:id、value、type。

     

    七、位运算符

     把数字当做二进制数进行运算

    x | y——1 1得1,1 0得1,0 0得0x & y——1 1得1,1 0得0,0 0得0

    x^y——1 1得0,1 0得1,0 0得 0

    >>> 2 & 3
    2
    
    >>> 2 | 3
    3
    
    >>> 2 ^ 3
    1
    
    >>> 2 << 2
    8
    
    >>> 2 >> 2
    0
    
    >>> 2 >> 3
    0
    
    >>> ~ 2
    -3

    八、运算符优先级

    优先级由高到最低顺序排列 :

    **幂 (最高优先级)

    * / % //乘、除、取余数、取整除

    + -加法、减法

    <= < > >=比较运算符

    == !=等于运算符

    = %= /= //= -= += *= **=赋值运算符

    is  is not 身份运算符

    in not in 成员运算符

    not > and > or逻辑运算符 

     

    >>> b = 1
    >>> b += b>=1    等价于b = b + (b>=1)
    >>> print(b)
    2
     
    >>>a or b and c 等价于
    >>>a or (b and c)
    
    >>> a=1
    >>> b=2
    >>> c=2
    >>> not a  or b + 2 == c
    False
    
    >>> not a  or ((b + 2) == c)
    False
    
    >>> (not a) or ((b + 2) == c)
    False

    九、表达式

    表达式(Expression)是运算符(operator)和操作数(operand)所构成的序列。

  • 相关阅读:
    Asp.net 表单打印时的样式设置【原】
    Asp.net页面编辑时怎样获取隐藏列的值【原】
    C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件【整理】
    SQL 快速删除表数据并不生成日志的语句【搜藏】
    Asp.net 前段页面控件 filedset 对应的服务端控件【原】
    Asp.net 关于 HTTP403 – 访问错误 的原因及解决【原】
    Js对一个对象应用滤镜的几种方法【整理】
    Asp.net 查找不到动态创建的控件之解决办法【整理】
    C# windows service承載遠程對象
    自己写的一个日志记录类
  • 原文地址:https://www.cnblogs.com/salmond/p/8722386.html
Copyright © 2020-2023  润新知