zoukankan      html  css  js  c++  java
  • python学习之运算符

    python学习之运算符

    本篇文章说明python中的一些运算符,python版本号为python3.6,python2中的内容不再本篇文章内

    1. 算术运算符

    运算符 描述 实例
    + 两个对象相加 10+20=30
    - 得到负数或是一个数减去另一个数 20-10=10
    * 两个数相乘或是返回一个被重复若干次的字符串 2*3=6 'py'*3='pypypy'
    / x除以y 5/2=2.5
    % 取模,返回除法的余数 5%3=2
    ** 幂,返回x的y次幂 2**10=1024
    // 取整除,返回商的整数部分(向下取整) 10//3=3

    2. 比较运算符

    运算符 描述
    == 等于 - 比较对象是否相等
    != 不等于 - 比较两个对象是否不相等
    <> 不等于 - 比较两个对象是否不相等
    > 大于 - 返回x是否大于y
    < 小于 - 返回x是否小于y
    >= 大于等于 - 返回x是否大于等于y。
    <= 小于等于 - 返回x是否小于等于y。

    3.位运算符

    运算符 描述 实例
    & 按位与运算符 3&5=1 ,二进制解释:011 & 101 = 001
    | 按位或运算符 3|5=7 ,二进制解释:011 | 101 = 111
    ^ 按位异或运算符 3^5=7,二进制解释:011 ^ 101 = 110
    ~ 按位取反运算符,~x 类似于 -x-1 ~5 = -6
    << 左移动运算符: 高位丢弃,低位补0。 4<<4=64
    >> 右移动运算符 128>>4=8

    4. 逻辑运算符

    运算符 逻辑表达式 描述 实例
    and x and y 布尔"与" 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 12 and 4 = 412 and False = False
    or x or y 布尔"或" 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 12 or 5 = 12
    not not x 布尔"非" 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not 5 = False

    5. 成员运算符

    运算符 描述 实例
    in 如果在指定的序列中找到值返回 True,否则返回 False。 's' in 'asdf' = True
    not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 's' not in 'asdf' = False

    6. 身份运算符

    运算符 描述
    is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
    is not is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。.

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

    7.其他

    1. 关于++ 或 -- 自运算符

      
      因为在 Python 里的数值和字符串之类的都是不可变对象,对不可变对象操作的结果都会生成一个新的对象。

    a = 1
    print(id(a))
    a += 1
    print(id(a))
    #输出结果
    1908042784
    1908042816
    

      在 C/java 之类的语言中,把a指向内存地址单元数据值由1改成了2。但是在Python中是完全不同的另一套机制。解释器创建一个新的整数对象 2。然后把这个对象的地址再次分配给 a。
      所以在 Python 中不可能出现C/java 之类那种单独一行一个 i++,i-- 的。

    2. is 和 ==

      
      is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
    a is b 相当于 id(a)==id(b)。

    3. 数组的两种赋值方式区别

      在python中给数组赋值的常用方法中有两个不同的方式

    # 第一种
    b=a 
    
    # 第一种
    b=a[:]
    

    看起来都是一样的,那么他们之间有没有什么区别呢?当然,区别是有的。区别就是:前者传递引用;后者是拷贝。直接=是引用赋值,引用原来的对象;而[:]是重新推导,会生成新的对象。用代码演示如下:

    a = [1, 2, 3, 4]
    b = a
    c = a[:]
    print(id(a))
    print(id(b))
    print(id(c))
    #输出结果
    2294445187016
    2294445187016
    2294445993544
    
    
  • 相关阅读:
    爬过的第一个坑
    Ecshop后台邮件群发
    ECShop 首页调用积分商城里面的的商品
    隐藏select右边的箭头按钮
    让IE6支持PNG透明图片
    PHP替换函数,一些正则!
    php判断终端是手机还是电脑访问网站代码
    ECshop在文章列表页调用文章简介
    Ecshop删除no_license点击查看 云登陆失败,您未有license
    Ecshop商品相册鼠标经过小图切换显示大图
  • 原文地址:https://www.cnblogs.com/huizhipeng/p/10093041.html
Copyright © 2011-2022 走看看