今日內容面試
今日內容編碼
深淺拷貝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()
總結