zoukankan      html  css  js  c++  java
  • day06

    1. is 和 == 的区别

    1. is 判断内存地址
      # id()函数-----获取内存地址
      a
    = 'alex' # 字符串   print(id(a)) # 2917013018360 内存地址   n = 10 # 数字   print(id(n)) # 140713995195712   li = [1,2,3] # 列表   print(id(li)) # 1504954376776   a = 'alex' # 字符串   b = 'alex'   print(a is b) # Ture   n = 10 # 数字   n1 = 10   print(n is n1) # Ture
      # 小数据池(常量池): 把我们使用过的值存储在小数据池中,供其他的变量使用
      # 小数据池给数字和字符串使用,其他数据类型不存在
          (1)数字小数据池的范围   -5~ 256, 超过这个范围, 内存地址就不一样.
          (2)字符串中如果有特殊字符他们的内存地址就不一样
          (3)字符串中单个*20以内他们的内存地址一样,单个*21以上内存地址不一样.
    
      # 数字
      n = -6
      n1 = -6
      print(n is n1)    # Flase
    
      n = 257
      n1 = 257
      print(n is n1)    # Flase
    
      n = 5 // 2
      n1 = 2
      print(n is n1)     # Ture
    
      # 字符串
      a = 'alex@'
      a1 = 'aelx@'
      print(a is a1)     # Flase
    
      a = 'a' * 22
      b = 'a' * 22
      print(a is b)     # Flase
    
      # 布尔值
      a = True
      b = True
      print(a is b)     # Ture
    
      # 列表,元组和字典没有小数据池
      li = [1,2,3]  # 列表
      li2 = [1,2,3]
      print(li = li2)     # False
    
      tu = ('燃哥','周杰伦')  # 元组
      tu1 = ('燃哥','周杰伦')
      print(tu is tu1)      # False
    
      dic1 = {'name':'alex'}  # 字典
      dic = {'name':'alex'}
      print(dic1 is dic)      # False
    2. ==   比较   比较是值
    
        a = 'alex'  # 字符串
        b = 'alex'
        print(a == b)  # Ture
    
        n = 10  # 数字
        n1 = 10
        print(n == n1)  # Ture
    
        li1 = [1,2,3]  # 列表
        li2 = [1,2,3]
        print(li1 == li2)  # Ture
    
        dic1 = {'name':'alex'}  # 字典
        dic = {'name':'alex'}
        print(dic1 == dic)  # Ture
    # 总结
        == 比较   比较的两边的值
        is 比较   比较的是内存地址   id()

    2. 回顾编码

    1. ASCII:
                不支持   中文
                支持     英文  数字  符号
                8位      一个字节
    2. GBK  国标:(兼容ASCII)
                支持  中文,英文,数字,符号
                英文  16位  两个字节
                中文  16位  两个字节
    3. unicode:(兼容ASCII)
                支持   中文,英文,数字,符号
                英文   32位  四个字节
                中文   32位  四个字节
    4. UTF-8: 长度可变的unicode. 最少用8位
                英文   8位   一个字节
                中文   24位   三个字节
    
    python2 只能用ASCII
    python3中 程序运行阶段 使用的是unicode   显示所有的内容
    bytes类型, 传输和存储都是使用bytes.
    
    pycharm 存储的时候默认是是使用utf-8    

    3. 编码和解码

    1. encode(编码方式)  编码. 获取到的是编码后对应的字节(解码之后的结果是bytes 'b')
        s = 'alex'
        print(s.encode('utf-8'))  # b'alex'
    2. decode(解码方式)  解码. 将编码后的字节编码成对应的明文(把 bytes变回字符串)
      s = '饿了'
      s1 = s.encode('gbk')       '
      print(s1)  # b'xb6xf6xc1xcb'
      print(s1.decode('gbk'))  # 饿了

    注意: 用什么进行编码就要用什么进行解码 不然会懵逼
  • 相关阅读:
    【UOJ Round #3】
    【UOJ Round #1】
    【BZOJ】【3673】可持久化并查集 & 【3674】可持久化并查集加强版
    【ContestHunter】【弱省胡策】【Round7】
    【BZOJ】【3211】花神游历各国
    【BZOJ】【4146】 【AMPPZ2014】Divisors
    【BZOJ】【3931】【CQOI2015】网络吞吐量
    【BZOJ】【3697】采药人的路径&【3127】【USACO2013 Open】Yin and Yang
    【BZOJ】【3930】【CQOI2015】选数
    【ContestHunter】【弱省胡策】【Round6】
  • 原文地址:https://www.cnblogs.com/kangqi452/p/11281718.html
Copyright © 2011-2022 走看看