昨日回顾

二十三、元组内置方法

不可更改的列表,其他的和列表一摸一样

二十四、散列表

二十五、字典内置方法

  1. 乱序

    python2中字典是乱序的,但是python3做了优化

    (本来是乱序的,但是在c这个层面做了不不乱序的优化)

  2. key为什么是不可变的

    假设是可变的,在哈希处理时,除留余数法会导致存储的位置发生变化

二十六、集合内置方法

  1. 去重
  2. 乱序(差值是按照某种哈希算法随机插的)
  3. 交集&/并集|/差集-/补集^

二十七、深浅拷贝

拷贝

a是b的拷贝对象,则b内部所有的数据类型变化,则a也变化

浅拷贝

a是b的浅拷贝对象,b内部的可变数据类型变化,a变化;b内部的不可变数据类型变化,a不变化

深拷贝

a为b的深拷贝对象,a内部无论何数据类型变化,b都不改变

今日内容

二十八、字符编码

1.文本编辑器存储信息的过程

unicode编码(识别所有代码)

因为unicode存储占用空间,所以用utf8来存储

utf8只和unicode对应识别

内存中unicode取,存用utf8存(硬盘),全世界的人写代码都是用utf8

  • 内存中为什么不用utf8?

    utf8和其他编码都没有转换关系,因此都要用unicode

未来迟早有一天,内存要用utf8

2.gb2312和gbk的区别

gb2312:一些常用词,不包括繁体字

gbk:所有的字

用什么编码写,就用什么编码读

如果写用utf8,存用gbk,会导致在存储的时候就会乱码

如果写用utf8,存用utf8,但是读用gbk,也会乱码

3.编码和解码

编码:内存中unicode编码,从内存到硬盘utf8

解码:Unicode从硬盘到内存

现在内存只有unicode编码

4.python解释器解释python代码的流程

  1. 读入python代码(字符编码)

    python2默认是ascill,python默认是utf8

    可以使用coding规定解决

    # coding:gbk  # 告诉python解释器用gbk去完成第一步,读入字符
    中文
  2. 识别代码 (语法识别)

  3. 终端产生结果(字符编码)

    终端是什么编码,就按照什么编码来

    windows终端是utf8

二十九、python2和python3的编码区别

python2

python2有两种存储变量的形式:Unicode和按照coding头

  1. 假设python2用utf8存储中文,当你打印时,终端接受gbk的变量,但是windows终端编码时utf8,就会乱码

  2. 假设python2用unicode存储,因为unicode可以和任何的编码转换,所以此时终端编码是什么就不重要了, 不会乱码

    # coding:gbk
    lt1 = '中文'  # utf存储的
    # lt1 = ['中文']  # []让他不用终端的编码转化,显示01010101001
    print lt1  # ['\xe4\xb8\xad\xe6\x96\x87']
    
    lt2 = u'中文'  # u'中文'让他变成unicode  # 早期用python2定义中文,必须得加上u,让他变成unicode存储
    # lt2 = [u'中文']
    print lt2  # '中文'

python3

python3只有一种存储变量的形式:unicode

因此,windows终端编码无论是什么都不会乱码,算是一种优化

字符编码 + python2和python3的编码区别(day08整理)的更多相关文章

  1. 字符编码 python2与python3的区别

    目录 1. 字符编码 2. 文本编辑器存储信息的过程 3. 编码: 1. 编码的历史 2. gb2312和gbk的区别 3. 编码和解码 4. python解释器 解释代码的流程 1. 读取文本到解释 ...

  2. while 运算符 初始编码 python2和python3的区别

    1.while 循环 2.运算符 3.初始编码 4.python2 和python3的区别 1.while循环: 关键词:while[循环]         break[跳出循环]         c ...

  3. Python2 与 Python3 的编码对比

    在 Python 中,不论是 Python2 还是 Python3 中,总体上说,字符都只有两大类: 通用的 Unicode 字符: (unicode 被编码后的)某种编码类型的字符,比如 UTF-8 ...

  4. [python]python2与python3版本的区别

    python2和python3的区别 区别: print函数 整数相除 Unicode 异常处理 xrange map函数 不支持has_key print函数: Python 2: print是语句 ...

  5. python版本坑:md5例子(python2与python3中md5区别)

    对于一些字符,python2和python3的md5加密出来是不一样的. Python2 和Python3MD5加密 # python2.7 pwd = "xxx" + chr(1 ...

  6. python2和python3的编码问题

    python2中有两种类型 str字符串和unicode字符串 python3则改成了 bytes和str字符串 在python2中‘xxx’和b‘xxx’都是str字符串,u‘xxx’是unicod ...

  7. python2和python3的编码encode解码decode函数

    python比较坑的一个点:意义完全变了的两个函数 首先 常用的编码方式有3种,utf-8:  常用的传输和存储格式,Unicode的一种简化 Unicode:包括了所有可能字符的国际统一编码 GBK ...

  8. 转 python2 与 python3 的编码

    原文链接:https://blog.csdn.net/xufive/article/details/102726739 引文如下: 无论是py2还是py3,都使用unicode作为内存编码,简称内码. ...

  9. (个人记录)Python2 与Python3的版本区别

    现在还有些开源模块还没有更新到python3 ,不了解版本区别,无法对不合适的地方进行更改. 由于只追求向Python3靠近,所以对于python2的特别用法不探究. 此文不补全所有版本区别,仅作档案 ...

随机推荐

  1. 使用Shell脚本编译运行C++源码 输入输出重定向

    在写C++控制台程序的时,如果使用Xcode或者Visual Studio之类的IDE,需要创建许多工程,会造成很多不便.有时,采用Vim或者Sublime text等编辑器编写简单的控制台程序能节省 ...

  2. Redis数据库之服务器主从配置

    目的 主要培养对分布式REDIS主从复制架构运用的能力.理解并掌握REPLICATION工作原理的同时,能独立配置Replication ,使数据库运行在主从架格上.针对主从复制架构的运用,着力掌握S ...

  3. DeleteFile

    import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import org.apac ...

  4. Python学习笔记整理总结【MySQL】

    一. 数据库介绍 1.什么是数据库?数据库(Database)是按照数据结构来组织.存储和管理数据的仓库.每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将 ...

  5. JsonConfig的jsonConfig.setExcludes的用法

    1.问题描述 在项目中经常会有两个类存在一对多或者多对一的关联关系,这样在查询多的一方时,会深入查询关联的一方,而我们可能并不需要去深入查询那些数据,此时使用JsonConfig的jsonConfig ...

  6. maven手动添加jar包到pom仓库

    此处以顺丰jar包为例: mvn install:install-file -Dfile=D:\TSBrowserDownloads\SF-CSIM-EXPRESS-SDK-V1.-\SF-CSIM- ...

  7. springboot 2.1.3.RELEASE版本解析.properties文件配置

    1.有时为了管理一些特定的配置文件,会考虑单独放在一个配置文件中,如redis.properties: #Matser的ip地址 redis.host=192.168.5.234 #端口号 redis ...

  8. ELK系列(二):.net core中使用ELK

    ELK安装好后,我们现在.net Core中使用一下,大体思路就是结合NLog日志组件将数据写入ELK中,其它语言同理. ELK的安装还是有些复杂的,我们也可以在Docker中安装ELK:docker ...

  9. ArcGISEngine中GP工具奇怪错误问题error(s) have been detected for layer

    运行时环境:使用CADToGeodatabase工具执行DWG文件转gdb过程,多次执行(即执行完一个dwg转gdb,再执行另一个dwg转gdb),执行失败 错误描述:首先执行CADToGeodata ...

  10. 【网络安全】给你讲清楚什么是XSS攻击

    给你讲清楚什么是XSS攻击 1. 什么是XSS攻击 跨站脚本攻击(Cross Site Scripting)本来的缩写为CSS,为了与层叠样式表(Cascading Style Sheets,CSS) ...