zoukankan      html  css  js  c++  java
  • python中的 == 和 is 的区别

    == 比较的是两边的值

    is 比较的是两边的内存地址  通过 id()获取内存地址

    小数据池:我们使用过的值存储在小数据池中,供其他数据使用.

      小数据池仅限于 数字 和 字符串:

        数字的小数池范围  -5---256

        字符串中 1.不能有空格;

              2. 长度不能超过20个字符;

              3. 不能有特殊字符 如:@#$

    1. id() 获得内存地址

    a = 'alex'
    print(id(a))   # 36942544  内存地址

    2. == 比较两边的值

    a = 'alex'
    b = 'alex'
    print(a == b)  #True
    
    
    n = 10
    n1 = 10
    print(n == n1) #True
    
    
    li1 = [1,2,3]
    li2 = [1,2,3]
    print(li1 == li2) #True

    3. is 比较的是内存地址

      3.1 列表 字典 元组 集合

    #列表
    li =[1,2,3]
    li2 =[1,2,3]
    print(li is li2)  #False
    
    #元组
    tu =(1,2,3)
    tu1 =(1,2,3)
    print(tu is tu1)   # False
    
    #字典
    dic1 = {'name':'alex'}
    dic = {'name':'alex'}
    print(dic1 is dic)    #False
    对比一下上面的 is
    
    #列表
    li =[1,2,3]
    li2 =[1,2,3]
    print(li == li2)  #True
    
    #元组
    tu =(1,2,3)
    tu1 =(1,2,3)
    print(tu == tu1)   # True
    
    #字典
    dic1 = {'name':'alex'}
    dic = {'name':'alex'}
    print(dic1 == dic)    #True

      3.2 对于str  小数据池

        字符串中 1.不能有空格;

              2. 长度不能超过20个字符;

              3. 不能有特殊字符 如:@#$

    a = 'alex@'
    a1 = 'alex@'
    print(a is a1)    # Fales
    
    
    a = 'a'*21
    b = 'a'*21
    print(a is b)     #False
    
    
    a = "ab  "
    b = "ab  "
    print(a is b)   #False 但是在pycharm中的结果为True

      3.3 对于int  小数据池

        数字的小数池范围  -5---256

    n = -6
    n1 = -6  #超出了范围
    print(n is n1)  #False
    
    n = -5
    n1 = -5
    print(n is n1)    #True

    n = 257
    n1 = 257
    print(n is n1) #cmd中为False 在pycharm中显示为True
     

     

  • 相关阅读:
    20150128-堆雪人
    20150127-梦里笑醒的声音
    20150126-渡口
    20150125-阴天
    FastAdmin 的上传代码在哪里?
    在 Linux 安装 IIS?
    FastAdmin env.sample 的用法
    可以方便配合 Git 的现代编辑器
    运算放大器复习
    Linux 权限使用 777 真的好吗?
  • 原文地址:https://www.cnblogs.com/kenD/p/9407326.html
Copyright © 2011-2022 走看看