day10

集合:作用:关系运算 去重
定义:在{}内用","分隔开多个元素,这里的元素需要满足下面几个条件
1.集合内元素必须是不可变类型
2.集合内元素是无序的
3.集合内不存在重复的元素
{}默认是空字典,所以集合的定义是set()
类型转换:set()
内置方法: 关系运算:1.取交集,两者共同的元素 x&y intersection
2.取并集,两者所有的元素 x|y union
3.取差集,取一者独有的元素 x-y取x y-x取x differenc
4.对称差集:取两个集合独有的元素 x^y symmetric_difference
5.父子集合:包含或者不包含关系
去重:1.不可变类型 2.无法保证原顺序
.discard()删除元素,存在删除 不存在不运行
.remove()
.pop()
.add() 添加元素到集合中
.update()集合里添加多项
字符编码表:就是数字与字符对应关系的表

ascii表:
1.只支持英文字符串
2.采用八位二进制对应一个英文字符串

gbk表:
1.支持英文字符,中文字符
2.采用八位二进制(8bit = 1 Bytes)数代表英文
3.采用十六位二进制数(16bit = 2 Bytes)代表中文

unicode:(内存中统一使用unicode编码)1)兼容万国字符 2)与万国字符都有对应关系
16位对应 个别生僻的的会采用4Bytes,8Bytes
unicode表:
字符--------------unicode格式的数字


为什么别的可以转unicode 但是unicode不可以转gbk shift-jis???

utf-8:unicode transfrom format - 8
英文 --- 1 Bytes
汉字 --- 3 Bytes


结论: 1.内存固定使用unicode, 我们可以改变的是存入硬盘的采用格式
2.文本文件存取乱码问题
1)存乱了 :编码格式应该设置成支持文件内容字符的格式
2)取乱了 :文件以什么编码存进硬盘,就用什么读入内存

 

python3默认读文件的编码 utf-8
python2.7默认读文件的编码 ascii

指定文件头修改默认的编码:
在py文件的首行写#coding:gbk


保证运行python程序前两个阶段不乱吗的核心法则:在文件头+ #coding:文件当初存入硬盘时所采用的编码格式

python3的str类型默认直接存成unicode格式,无论如何都不会乱码

保证python2的str不乱码 x = u'上' 需要加小写的U

python2 有两种字符串类型:str,unicode
str类型: x = '上'
unicode类型: x = u'上' # 强制存成unicode

posted @ 2020-03-12 21:25  TopJocker  阅读(119)  评论(0编辑  收藏  举报