编码说明:

   常用编码介绍:

    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)

python字符编码转换说明及深浅copy介绍的更多相关文章

  1. Python—字符编码转换、函数基本操作

    字符编码转换 函数 #声明文件编码,格式如下: #-*- coding:utf-8 -*- 注意此处只是声明了文件编码格式,python的默认编码还是unicode 字符编码转换: import sy ...

  2. day4学python 字符编码转换+元组概念

    字符编码转换+元组概念 字符编码转换 #coding:gbk //此处必声明 文件编码(看右下角编码格式) #用来得到python默认编码 import sys print(sys.getdefaul ...

  3. python 字符编码 转换

    #!/bin/env python#-*- encoding=utf8 -*-# 文件头指定utf8编码还是乱码时,使用下面方式指定# fix encoding problem import sys ...

  4. Python字符编码转换

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

  5. python字符编码(二)

    一.什么是字符编码 计算机要想工作必须通电,也就是说‘电’驱使计算机干活,而‘电’的特性,就是高低电压(高低压即二进制数1,低电压即二进制数0),也就是说计算机只认识数字 编程的目的是让计算机干活,而 ...

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

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

  7. 深入理解Python字符编码

    不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError.UnicodeDecodeError 错误,每当遇到错误我们就拿着 enc ...

  8. Learning-Python【8】:Python字符编码

    1.内存和硬盘都是用来存储的 内存:速度快 硬盘:永久保存 2.文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就可以启动一个进程,是在内存中的,所以在编辑器编写的 ...

  9. 关于Python字符编码encode和decode

    (注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 记得几天前,部门的一个小姑娘问我,怎么她Python打印出来的中文信息都乱码了?我走过去,略思一二,瞬间给她搞定,其实这是字 ...

随机推荐

  1. Perl学习笔记(2)----正则表达式数字匹配的一个疏忽

    <Perl语言入门>第15章习题第2题如下: 用 given-when 结构写一个程序,根据输入的数字,如果它能被3整除,就打印“Fizz”:如果它能被5整除,就打印“Bin”:如果它能被 ...

  2. c# FTP操作类(转)

    using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net ...

  3. windows下安装jekyll

    jekyll在其官方网站上说并不建议在windows操作系统安装,可是我们已经在windows环境下操作比较习惯了,而安装linux或mac的成本又比较高.因此,虽然在windows安装jekyll的 ...

  4. 30分钟学会JS AST,打造自己的编译器

    这是一棵树嘛 直奔主题 抽象语法树是js代码另一种结构映射,可以将js拆解成AST,也可以把AST转成源代码.这中间的过程就是我们的用武之地. 利用 抽象语法树(AST) 可以对你的源代码进行修改.优 ...

  5. Thrift学习笔记—IDL基本类型

    thrift 采用IDL(Interface Definition Language)来定义通用的服务接口,并通过生成不同的语言代理实现来达到跨语言.平台的功能.在thrift的IDL中可以定义以下一 ...

  6. IEEP部署企业级网络工程-网络故障-环路故障

    网络故障 1.环路故障 概念 1).以太网是一个支持广播的网络, 在没有环路的环境中,广播报文在网络中以泛洪的形式被送达到网络的第一个角落,以保证每个设备都能够接受到它.每台二层设备在接收到广播报文以 ...

  7. laravel where筛选会判断类型吗?

    laravel where筛选会判断类型吗? laravel where筛选会判断类型吗? laravel where筛选会判断类型吗? 这个说会判断不对,说不会判断也不对. 当字符串'1'和数值1是 ...

  8. web.config如何实现301跳转

    .htaccess的301定向非常简单,那么web.config的301定向又应该怎么实现呢? 先来看下,web.config中的301格式 <?xml version="1.0&qu ...

  9. 实战开发一个Nginx扩展 (Nginx Module)

    repo地址 https://github.com/wujunze/nginx-http-echo-module nginx_module_echo 使用echo指令输出一个字符串 Nginx 版本 ...

  10. 【Z】扩展阿里巴巴Java开发规约插件

    https://blog.csdn.net/u014513883/article/details/79186893 1.前言 工作中难免会遇到维护别人代码的情况,那么首先就得看懂别人写的代码.如果对方 ...