编码说明:

   常用编码介绍:

    ascii 数字,字母 特殊字符。
    字节:8位表示一个字节。
    字符:是你看到的内容的最小组成单位。
    abc : a 一个字符。
    中国:中 一个字符。
    a : 0000 1011

    unicode: 万国码
    起初: a : 0000 1011 0000 1011
    中: 0000 1011 0000 1111
    升级: a : 0000 1011 0000 1011 0000 1011 0000 1011
    中: 0000 1011 0000 1111 0000 1011 0000 1011

    utf-8:最少用8位表示一个字符。
    a: 0000 1011
    欧洲: 0000 1011 0000 1011
    亚洲中:0000 1011 0000 1011 0000 1011

    gbk:国标
    a: 0000 1011
    中:0000 1011 0000 1011 两个字节。

    1,不同编码之间的二进制是不能互相识别的。
    2,对于文件的存储,及传输 不能是unicode的编码。
    python3x
      int
      bool
      bytes:内部编码方式:(非unicode,utf-8,gbk.gb2312...)
      str : 内部编码方式unicode
      list
      dict
      tuple

      bytes:内部编码方式:(非unicode,utf-8,gbk.gb2312...)
      str : 内部编码方式unicode
      字母:
      str:表现形式:s1 = 'alex'
      内部编码:unicode

      bytes:表现形式:s2 = b'alex'
      内部编码:非unicode

    中文:
      str:表现形式:s1 = '中国'
      内部编码:unicode

    bytes:

      表现形式:b1 = b'\xe4\xb8\xad\xe5\x9b\xbd'
      内部编码:非unicod

  说明:
    不同编码之间的二进制是不能互相识别的。
    对于文件的存储,及传输 不能是unicode的编码
    在python3中默认字符串编码方式是unicode,所以字符串不能直接发送和写入文件,所以需要转化。
    Bytes默认字符编码是可变得但不是unicode编码方式,但bytes与str的所有操作方式都是一样的。
    所以str想直接存储或者传输,需要将str转化成bytes再存储。

  字符间转换方式:

    存在str和bytes原因,是因为两者英文显示都是一样可以使用,但在表示中文的时候bytes可读性很差。
    所以向str转化成bytes类型使用encode(‘字符编码’)

    str转byts方法:——encode(‘字符编码’)

    bytes转回str类型(解码):——decode(‘默认可以不写’)

    bytes中文转化为其他编码方式是先转化为str后再转化为其他字符:
    str可以转化为其他编码格式,存储时候使用bytes存储,所以其他格式的字符编码想转化为其他字符,就需要先dicode转化为str然后再通过enco的将str转化为其他。

    举例:

      s1 = 'alex'
      # str ---> bytes encode 编码
      b1 = s1.encode('utf-8')
      print(b1)
      #bytes---> str decode 解码
      s2 = b1.decode('utf-8')
      print(s2)

      s4 = '中国'
      b4 = s4.encode('utf-8') # utf-8 bytes
      print(b4) ###b'\xe4\xb8\xad\xe5\x9b\xbd'

      b6 = b4.decode('utf-8').encode('gbk')

      print(b6) ###b'\xd6\xd0\xb9\xfa'

深 浅 cop说明

  .Copy()

  对赋值运算来说,就是公用一个内存地址,两个值都是公用一个内存地址,一个变另一个也跟着变。
  .copy()复制的内容,浅copy是第一层级是相对独立,从第二层级后公用一个内存地址。
  对于深copy需要引用copy模块,inmport copy不论嵌套多少层都是使用独立的内存地址,即别人变我不变。

  浅copy:
    对于层级比较多的列表或字典的时候,第一层(最外层)是相对独立的内存地址,从第二层开始,就开始共公用一个内存地址

  深copy :
    Import copy ——引用一个copy模块

    深copy是表示不论你列表中嵌套了多少层,内存地址都是独立的。互补影响。

  举例:
    #赋值运算
    # s1 = [1, 2, 3] ####赋值运算公用一个地址
    # s2 = s1 # 共用一个
    # s1.append(666)
    # print(s1, s2)

    #浅copy
    # s1 = [1, 2, 3] ####浅copy是第一层级是相对独立
    # s2 = s1.copy()
    # s1.append(666)
    # print(s1, s2)

    # s1 = [1, 2, 3,[11,22]] ### 浅copy 第一层各自独立,从第二层开始,共用一个内存地址。
    # s2 = s1.copy()
    # s1[-1].append(666)
    # # print(s1, s2)
    # print(id(s1), id(s2))
    # print(id(s1[-1]), id(s2[-1]))

  # 深copy
    import copy ###引用copy模块
    # s1 = [1, 2, 3,[11,22]]
    # s2 = copy.deepcopy(s1)
    # s1.append(666)
    # print(s1, s2)

    # s1 = [1, 2, 3,[11,22]] ### 深copy 无论多少层,都是互相独立的。
    # s2 = copy.deepcopy(s1)
    # s1[-1].append(666)
    # print(s1, s2)

转载于:https://www.cnblogs.com/liujiyu/p/9096420.html

python字符编码转换说明及深浅copy介绍相关推荐

  1. Python字符编码转换Unicode和str

    参考链接1:https://blog.csdn.net/VictoriaW/article/details/75314737 参考链接2:https://blog.csdn.net/sheldonwo ...

  2. Python字符编码转换

    编码回顾 在备编码相关的课件时,在知乎上看到一段关于Python编码的回答 这哥们的这段话说的太对了,搞Python不把编码彻底搞明白,总有一天它会猝不及防坑你一把. 不过感觉这哥们的答案并没把编码问 ...

  3. python字符编码转换_Python字符和字符值(ASCII或Unicode码值)转换方法

    目的 将一个字符转化为相应的ASCII或Unicode码,或相反的操作. 方法 对于ASCII码(0~255范围) 代码如下: >>> print ord('A') 65 >& ...

  4. python 字符编码问题

    字符编码 一.字符编码的演进 ASCII GB2312    GBK1.0    GB18030 Unicode编码:国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言.跨平台 ...

  5. Python字符编码详解

    Python字符编码详解 转自http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html Python字符编码详解 本文简单介绍了各种常用的 ...

  6. 深入理解Python字符编码--转

    http://blog.51cto.com/9478652/2057896 不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError ...

  7. python字符编码在哪里_快速入手Python字符编码

    前言 对于很多接触python的人而言,字符的处理和语言整体的温顺可靠相比显得格外桀骜不驯难以驾驭. 文章针对Python 2.7,主要因为3对的编码已经有了很大的改善并且实际原理一样,更改一下操作命 ...

  8. python 字符编码处理_浅析Python 字符编码与文件处理

    Python字符编码 目前计算机内存的字符编码都是Unicode,目前国内的windows操作系统采用的是gbk. python2默认的字符编码方式是ASCII python3默认的字符编码方式是Un ...

  9. 转1:Python字符编码详解

    Python27字符编码详解 声明 一 字符编码基础 1 抽象字符清单ACR 2 已编码字符集CCS 3 字符编码格式CEF 31 ASCII初创 311 ASCII 312 EASCII 32 MB ...

  10. python中二进制和文本不同_关于Python字符编码与二进制不得不说的一些事

    二进制 核心思想: 冯诺依曼 + 图灵机 电如何表示状态,才能稳定? 计算机开始设计的时候并不是考虑简单,而是考虑能自动完成任务与结果的可靠性, 简单始终是建立再稳定.可靠基础上 经过尝试10进制,但 ...

最新文章

  1. php模块介绍,Python模块介绍
  2. 有关mysql事务冲突
  3. 为什么用U盘做启动盘
  4. windows消息定义
  5. [java]常用类型转化
  6. C#.NET SQLServer数据库分页函数,包含存储过程和C#代码
  7. 将pcre、zlib等包编译进nginx里去(转)
  8. 课时85.层叠性(掌握)
  9. 关于关闭office 2010中的OSPPSVC服务的方法
  10. 使用浏览器获取网页模板(HTML+CSS)
  11. UE4暴露游戏元素给蓝图
  12. mybatis加载xml配置文件
  13. Talking Data副总裁高铎:我们如何赋予大数据生命力
  14. 【Redis笔记】简单动态字符串(SDS)
  15. iOS学习之Object-C语言继承和初始化方法
  16. wifi协议_以太网(Ethernet)和WiFi协议
  17. codeblocks 16.01 汉化包下载地址及方法
  18. OTP单片机AD单片机FLASH开发之义隆应广九齐仿真器
  19. python基本语句实验心得_总算领会python语言学习心得
  20. trove mysql 镜像_centos7下手动制作trove镜像

热门文章

  1. 链表一:从尾到头打印链表
  2. php数学和时间常用函数有哪些(总结表)(看学习视频效率挺高的)(复习)...
  3. 实操指南|数据分析遇上餐饮业
  4. 双击获取GridView控件行信息
  5. Hybrid端口配置理解
  6. python的模块(module)和包(package)
  7. python 阿里云短信接口_阿里云短信接口怎么使用
  8. 主成分分析法案例_主数据管理第一步——识别主数据
  9. java io 高级,JavaSE - [10] 高级部分之IO流
  10. java多台_java多态