2019-03-08-day007-深浅拷贝

时间:2022-11-02 15:07:01

01 昨日内容回顾

is 两者之间的id是否相同
== 两边的数值是否相等
id 获取该对象的内存地址

代码块:
一个文件,交互式命令行:一行是个一个代码块.
同一代码块下: 字符串的缓存机制,驻留机制:
背景: 同一个代码块下.
遇到初始化对象命令,会实现检查字典中是否有此对应关系......
针对的数据类型: int(float), 大量的str, bool, () ,None
优点:
1,节省内存空间.
2,提升性能.

小数据池:

背景:不同的代码块.
在内存中,开辟两个空间.
一个空间: -5~256 int.
一个空间: 一定规则的字符串.
针对的数据类型: int str,bool () None
优点:
1,节省内存空间.
2,提升性能.

数据类型的补充:
1,数据之间的相互转换.
2,(1) ----> int  (1,) ----> tuple
3,dict.fromkeys([1,2,3],value)
4,循环一个列表,字典,不要改变其大小.

02 作业讲解

03 编码的进阶

ASCII: 英文字母,数字,特殊符号, ----> 二进制的对应关系
str:
1个字符 -----> 1个字节
a : 0001 0000

Unicode: 万国码: 世界上所有的文字与二进制的对应关系
1个字符 -----> 4个字节
   a: 0001 0000 0001 0000 0001 0000 0001 0000
   中: 0001 0000 0001 0000 0001 0000 0011 0000

utf-8: 至少用8位1个字节表示一个字符.
   a: 0001 0000 映射的ASCII
   中: 0001 0000 0001 0000 0001 0000 三个字节

gbk: 国标.
   a: 0001 0000 映射的ASCII
   中: 0001 0000 0001 0000 两个字节
1,不同的编码之间的0101010 是不能互相识别的.
2,网络传输,数据存储到磁盘你用的0101010这种二进制,不能使用Unicode的编码本去编译.
大背景:python3x版本.
str:它在内存中的编码方式: Unicode
但是咱们写入文件的内容,传输给别人的数据,一般都是str的形式.
矛盾点:网络传输,数据存储到磁盘你用的0101010这种二进制,不能使用Unicode的编码本去编译.但是python3x又需要str形式去操作
利用str 发送或者传输
(转换,将unicode编码转化成非Unicode)
 ----> 发送,传输
int
bool
str
bytes数据类型,与str几乎一模一样.
list
dict
set
tuple
英文:
str:
在内存中的编码:Uniode
表现形式:'taibai'

bytes:
在内存中的编码:非Unicode
表现形式:b'taibai'

中文:
str:
在内存中的编码:Uniode
表现形式:'中国'

bytes:
在内存中的编码:非Unicode
表现形式:b'\xe4\xb8\xad\xe5\x9b\xbd'

str(Unicode) ---> bytes(非Unicode)

04 文件操作的初识

美女护士教师主妇联系方式.txt

文件的路径:path.
编码方式:utf-8 gbk 等等.
具体的操作: 读,写,读写,写读,等等.

出现的问题:

1,路径问题.
    r"D:\0美女护士教师主妇联系方式.txt"
    "D:\\0美女护士教师主妇联系方式.txt"
2,
    编码的问题:UnicodeDecodeError:
    编码要与文件存储时的编码保持一致.
3,
    错误: 有的电脑 会隐藏 后缀名.

05 文件的读

四种模式:
r  r+ rb r+b  ...
每种模式下,又有5种读文件不同方式.

06 文件的写

07 文件的追加

r r+ w a
网络: rb wb

08 其他操作方法

总结:
    最常用的几个方法 read   seek  tell   flush  readable writeable

09 文件的改

以读的模式打开原文件.
以写的模式创建一个新文件.
将原文件内容读取出来,按照你的要求改成新内容,写入新文件.
删除原文件.
将新文件重命名成原文件.

10 深浅copy

浅copy

浅copy:
    无论是同一个代码块,不同代码块下:
    复制一个外壳(列表),但是列表里面的所有元素,都共用一个.

深copy:
    不论是同一个代码块,不同代码块下:
    不仅创建一个新外壳(列表),外壳里面的可变的数据类   型也创建一份新的,但是不可变的数据类型共用一个.

总结:

编码: gbk  unicode  utf-8 转换
文件操作:
r r+ rb wb
seek tell flush readable writeable read
文件的改的操作.
设计到的代码: 高大上版的一定要会.
深浅copy:面试考.

下周一:

上午 总结,回顾.(知识点,带着你们做题.)

晚上: 考试.