Python--day07

昨天内容回顾

1.  深浅拷贝:

值拷贝:直接赋值,原列表中任何值发生改变,新列表的值都会发生改变。

浅拷贝:通过copy()方法,原列表中存放值的地址没有发生改变,但内部的值发生改变,新列表也随之改变。

深拷贝:通过deepcopy方法,原列表中任何值发生任何改变,新列表的值都不会随之改变。

 

2.  元组类型 

t = tuple()

元组: 1.  元组可以理解为不可变的列表

    2.  元组是有序的,故可以通过索引取值 

    3.  元组是不可变类型,长度和内容都不可变

元组中可以存放所有的数据类型,所以元组存放可变类型数据后,可变类型依然可以放生改变

 

3.  字典类型

字典的key具有唯一性,是不可变类型

字典的value是可以存放所有的数据类型

字典:

    1.  字典是可变类型

    2.  字典是无序的,所有欸有办法通过索引取值,只能通过索引取值

字典的增删改查:(详见day06的博客)

update(dict).  将新的字典添加到原字典中,如果原字典已经存在,则不做改变,原字典中不存在,则添加。

      若已存在原字典的key,则更新value

setdefault(key,d_value):若key已经存在,不做改变,若不存在key,则添加到字典中

dic = {'a': 1, 'b': 2}
dic.setdefault('c',67)
print(dic) # {'a': 1, 'b': 2, 'c': 67}

get(key,default):按照key查询字典中是否存在,若存在,返回value,若不存在,返回None

dic = {'a': 1, 'b': 2}
print(dic.get('c')) # None
print(dic.get('a')) # 1

pop(key):根据key值删除值,有返回值。若key存在,则返回value,若不存在,则报错

pop(keyitem):随机删除字典中的值

循环: for k,v in dic.items():  #(k,v)

 

4.  集合类型

集合是不可变类型,可增可增,无序无索引无key,不能取值不能改值,可以通过for循环取值,取值的顺序不确定

特点:不能存放重复的数据,故可以用来去重

1.  数据类型转换

1.1  哪些类型可以转化为是数字类型

1.2  数字类型转化为字符串

1.3  字符串与列变类型转换

1.4  列表list与元组tuple、函数set可以直接相互转化 ----  直接 类型()

2.  字符编码

核心要点:编码与解码要统一编码

编码:将普通字符串转换位二进制字符串

解码:将二进制字符串转换为普通字符串

2.1  应用程序打开文件的三步骤

1)打开应用程序

2)将数据加载到内存中

3)CPU将内存中的数据直接翻译成字符显示给用户

python解释器

1)打开python解释器

2)将数据加载到内存中

3)CPU将内存中的数据解释执行将结果显示给用户,如果解释执行不能通过,将错误信息提供给用户。

 

2.2  编码表

ASCII表:英文字母、英文符号、数字与机器能识别的字符的对应关系表,8个二进制位能存放所有的对应关系 ===>>1字节

GBK:中文与机器能识别的字符的对应关系表(完全兼容ASCII表),16个二进制位能存放所有汉字与ASCII之前的关系===>>2字节

2.3  乱码:村的编码格式与取的编码格式不一致

2.4  Unicode万国码:时间中常用国家的常用字符与机器能识别的字符的对应关系

utf-8与utf-16均采用Unicode编码表,只是存放数据采用字节数不一致,utf-8与utf-16是Unicode编码表的两种体现方式

utf-8:以一个字节存放英文,以3个或者6个字节存放汉字,在英文数据过多时,更省空间,用来传输效率更高

utf-16:所有支持的符号都采用2个字节存放,读存数据采用定长,不用计算,读存效率高

 

硬盘到内存需要数据的出书,内存到CPU需要数据的传输,所有都采用utf-8

内存需要高速读写,采用utf-16

上一篇:day07作业


下一篇:day07