今日内容面试
今日内容编码
深浅拷贝code
v1=[1,2,[34,67,9]]
import copy
浅拷贝:
拷贝第一层
v2=copy(v1)---将v1的地址copy,最外层壳拷贝一份,内层变量指向地址不变。
id(v1[2]),id(v2[2])--相同
id(v1),id(v2)---不相同,不拷贝内部变量地址ip
深拷贝:内存
v1=[1,2,[34,67,9]] import copy 深拷贝: 拷贝全部数据(可变) V3=deepcoyy(v1)---将v1中可变类型地址进行拷贝。适合嵌套的类型 id(v1),id(v2)--不一样 id(v1[2],id(v2[2))--不一样,内部变量地址也拷贝
实例验证:utf-8
import copy v1=[1,2,[34,67,9]] v2=copy.copy(v1) print(id(v1),id(v2)) print(id(v1[2]),id(v2[2])) v3=copy.deepcopy(v1) print(id(v1),id(v3)) print(id(v1[2]),id(v3[2])) 输出: 39290696 39291976 39290504 39290504 39290696 39291912 39290504 39291848
总结:unicode
特殊状况:字符串
v1=(1,2,3) import copy v2=copy.copy(v1) print(id(v1),id(v2)) v3=copy.deepcopy(v1) print(id(v1),id(v3) 元组不可变,因此深浅拷贝的id都不变。 v1=(1,2,3,[3,4,5]) import copy v2=copy.copy(v1) print(id(v1),id(v2)) v3=copy.deepcopy(v1) print(id(v1),id(v3)
内存中默认编码方式为unicode;文件操做包括:打开,操做,关闭。it
文件读取流程:
file_object=open('log.txt',mode='r',encode='utf-8')
content=file_object.read()
print(content)
file_object.close()import
写入流程:
file_object=open('log.txt',mode='w',encode='utf-8') ##w只写,打开瞬间清除已经存在的数据,通常用于新建。
file_object.write('zhangsan')
file_object.close()
操做类型:
a:追加,在文件尾部追加。
r:只读,文件不存在报错。
w:只写,先清空,通常用于文件不存在新建。
a:追加。文件不存在,新建。
可读可写:r+
写入:根据光标的位置,从当前光标位置开始写入操做(可能会覆盖其余文字)。
file_object.seek(2)#调整光标的位置。 file_object=open('log.txt',mode='r+',encode='utf-8') file_object.write(你好)##有个光标。先写入,在开始0字节写入你好,覆盖前两个字。 content=file_object.read() print(content) file_object.write(6666) file_object.close()
w+:
默认光标在最后。 写入时候将文件清空,读取时候须要调整光标位置。 若是先读取,再写入,光标已经在写入的后面,在读取的时候,没法读取光标前面的内容。 须要将光标移动至前面,file_object.seek(0),才能够读取到内容。
可读可写:a+
默认光标在文件最后,读取内容须要将光标移动至最前面,file_object.seek(0) 若是调整光标位置:file_object.seek(0),写入内容,仍是写在如今内容后
r+:
data=file_objcet.read(n)###读从当前光标位置读取n个字符 file_object.readlines()###按照行读取,按照列表存入。 若是读取特别大的文件:
按行读取:
for line in file_object: print(line.strip()) ##去掉换行符号
写操做:
file_object=open('log.txt',mode='w',encode='utf-8') file_object.write('wxwlllxx\n') ###第一次写入的时候,在最后添加换行符,再次写入的时候就不会清空,内容在换行符光标的后面进行第二次内容写入。 file_object.write('ix;wxmslhs') ###这里写入的内容就包括第一次和第二次写入的内容,两部分。 print(content) file_object.close()
总结