zoukankan      html  css  js  c++  java
  • 运算符

    算术运算符

    算术运算符的优先级和数学是一样的,当不清楚顺序时可添加圆括号来加深顺序。

    python3除法有余数,python2取整
    python 3
    >>>	3/6
    0.5
    >>>	3//6   #双除线即为取整除
    0            
    >>>	4/2
    2.0
    python 2
    >>>	3/6
    0
    >>>	float(3) / 6   #两边改其中之一为浮点数即为自然除
    0.5  
    
    • + 加
    • - 减
    • * 乘
    • / 除
    • // 取整
    • % 取模 分布式常用
    • ** 次方

    比较运算符

    • == 相等
    • != 不等
    • > 大于
    • >= 大于等于
    • < 小于
    • <= 小于等于
     >>> 1 == '1'
     False
     
     >>> 1 != '1'
     True
     
     >>> 1 < '1'
     TypeError: unorderable types: int() < str()
     
     除了 == 和 != 最好类型相同
    

    赋值运算符

    • = :赋值
    • += :加法赋值运算
    • -= :减法赋值运算
    • *= :乘法赋值运算
    • /= :除法赋值运算
    • %= :取模赋值运算
    • **= :幂赋值运算
    • //= :取整除赋值运算
    >>> a = 3 
    >>> a += 3  #等于 a = a + 3
    >>> print(a)
    6
    
    >>> a -= 4  #等于 a = a - 4
    >>> print(a)
    2
    

    逻辑运算符

    参与运算的只能是bool类型,或隐式转化为bool类型的类型

    • and #与,两边都是True,结果才为True
    • or #或,两边运算符任意一边为True,结果就是True
    • not #非,单目运算符

    短路运算:总是从左到右的计算,一旦能决定表达式最终的值,将立刻停止计算并返回

    >>> def add(x,y):
    		print("{0} + {1}".fornat(x,y))
    	return x + y
    
    >>> add(1,3)
    1 + 3
    4
    
    >>> add(1,3) > add(1,2) and add(1,2) > add(1,1)
    1 + 3
    1 + 2
    1 + 2
    1 + 1
    True
    
    >>> add(1,3) < add(1,2) and add(1,2) > add(1,1)
    1 + 3
    1 + 2
    False
    此时左侧的值为Fasle就能算出整个算术的结果,此时右边都无需计算了
    
    

    位运算符

    a=60
    b=12

    符号 描述 实例
    & 按位与 a&b=12
    | 按位或 a|b=60
    ^ 按位异或 a^b=48
    ~ 按位取反 ~a=-61
    << 左移位运算符,左移几位就在尾部增加几个0 60<<2 得240
    >> 右移位运算符,右移超出范围则删除 60>>2 得15

    与、或、异都是转换成二进制(0x开头,bin函数)在进行操作,而按位取反是十六进制(0x开头,hex函数),(八进制Oo开头,oct函数)

    >>>bin(60)
    '0b111100'
    >>>bin(12)
    '0b1100'
    
    >>> 60 & 12
    0011 1100
    0000 1100
    
    0000 1100  #两者为1才得1
    
    >>> 60 | 12
    0011 1100
    0000 1100
    
    0011 1100  #有1个存在即得1
    
    >>> 60 ^ 12
    0011 1100
    0000 1100
    
    0011 0000  #不同时为1
    
    >>> ~60
    -61     #非的算法公式:-(x+1)
    
    

    位移:

    >>> 60 >> 2   #60往右移两位
    0011 1100
    0000 1111 = 15
    
    >>> 60 << 2   #60左移两位
    0011 1100
    1111 0000 = 240
    

    成员运算符

    • in :如果在指定的序列中找到值返回True,否则返回False
    • not in :如果在指定的序列中没有找到值返回True,否则返回False
    >>> list1=[1,2,3]
    >>> 1 in list1
    True
    
    >>> 4 not in list1
    True
    

    身份运算符

    身份运算符用于比较两个对象的存储单元

    • is :判断两个标识符是不是引用自一个对象,类似于id(x) == id(y)
    • is not :判断两个标识符是不是引用自不同对象,类似于id(x) != id(y)

    注:id()函数用于获取对象内存地址。

    >>> a = b = 10
    >>> id(a) == id(b)
    True
    
    >>> b = 11;id(a) == id(b)
    False
    
    >>> a is b
    False
    
    >>> id(a)
    9169856
    >>> id(b)
    9169856
    

    is 与 == 的区别:
    is 用于判断两个变量引用对象是否为同一个,==用于判断引用变量的值是否相等

    >>>a = [1, 2, 3]
    >>> b = a
    >>> b is a 
    True
    >>> b == a    # b = a是将b指向a的内存地址
    True
    >>> b = a[:]    #这里重新给b赋值一个新的内存地址
    >>> b is a
    False
    >>> b == a
    True
    
  • 相关阅读:
    将图片保存到数据库中及转换
    svn 插件地址
    反射
    android 使用Sax 读取xml
    抓取 网页信息
    客户端测试
    简单多线程+委托+事件
    postman实战四
    Postman练习
    Jmeter练习二添加书籍信息
  • 原文地址:https://www.cnblogs.com/dance-walter/p/9387789.html
Copyright © 2011-2022 走看看