day7大纲

01 昨日内容回顾
数据类型补充:
str <---> list split join
list <---> set set(list) list(set())
list <---> tuple tuple(list) list(tuple)
int str bool
bool False: "" 0 [] () set() {} None

tuple:
(1) 与元素数据类型相同 # 这个不是元祖 就是元素

list:在循环一个列表时,最好不要改变列表的大小,会影响结果。
倒叙循环:
for i in range(len(l1)-1,-1,-1):
pass

dict:在循环一个字典时,不能改变字典的大小,会报错。

is id ==
== 比较的是两边的数值是否相同
id() 对象的内存地址
内存地址相同:变量的在内存中的指向是同一个内存地址 同一个内容。
is 比较的是内存地址相同,是否是同一个人。

代码块:
一个文件。 命令行的一行就是一个代码块。

同一代码块中的缓存机制:
适应的数据类型:str int bool
意义:
1,节省内存
2,提高性能。

小数据池:
适应的数据类型:str(一定范围) int(-5~256) bool
意义:
1,节省内存
2,提高性能。
编码进阶:
ascii unicode utf-8 gbk
1,不同编码之间不能相互识别。(乱码或者出错)
2,网络传输和数据存储不能是通过unicode的编码方式的01010101.

python3x:
str:内部编码方式:unicode

不能直接将字符串用于网络传输和数据存储。

bytes:内部编码方式:非unicode

英文:
str:'alex'
内存编码:unicode

bytes:b'alex'
内存编码:非unicode

中文:
str:'太白'
内存编码:unicode

bytes:b'\ex3\ex3\ex3\ex3\ex3\ex3\'
内存编码:非unicode

unicode ----> b1 = s1.encode('gbk')
gbk --------> b1.decode('gbk')
unicode ----> s1.encode('utf-8')
utf-8 --------> b1.decode('utf-8')

b1 gbk的bytes类型
gbk -----> utf-8
b1.decode('gbk').encode('utf-8')

深浅copy:
l1 = [1,2,3,[22,]]
l2 = l1.copy()
浅copy:在内存中创建一个新的列表,但是内容沿用原列表的内容。
import copy
l1 = [1,2,3,[22,]]
l2 = copy.deepcopy(l1)
深copy:在内存中创建一个新的列表,但是列表中的不可变的数据类型沿用原来的,可变的数据类型创建新的内存地址。




02 作业讲解


03 文件操作
初识
美女护士教师空姐的联系方式.txt
如果想要通过python代码操作这个文件:必须的三要素:
path:文件的路径。
mode:r w r+ w+ a ....
encoding: 编码方式

报错原因:
1,路径错误。 \与后面的那个字符具有了特殊意义。
解决方式:
r'd:\美女护士空姐联系方式.txt' 在路径最前面+ r
'd:\\美女护士空姐联系方式.txt' 第一个\对第二个进行转义。
2,Unicodedecodeerror: 编码问题。
encoding='utf-8' 打开文件的编码与文件存储时的编码不一致。

3, encoding 只是声明了此文件的需要用什么编码本编码解码而已。

4,路径:
绝对路径:从磁盘(根目录)开始,直到找到你的文件。
相对路径:当前路径(当前文件夹)找到的文件。

读(r rb r+ r+b)

写 (w wb w+ w+b)

追加 (a ab a+ a+b)

以上总结:
最常用的 r r+ 其次 rb w wb a
带b的模式都是操作的非文本类的文件:图片 音频,视频。

文件操作的其他功能
readable writable flush tell seek truncate


文件的改的操作

处理文件的另一种方式:
with open()

猜你喜欢

转载自www.cnblogs.com/yang950718/p/10201724.html