第八天
阿新 • • 發佈:2020-12-24
今日內容
瞭解:
佇列:先存進去的資料先取出來
堆疊:先存進去的資料後取出來
一、集合:
======================================基本使用====================================== 1、用途:去重、關係運算。 ps:其中集合去重無法保準順序,並只能針對不可變元素去重。 2、定義方式:在{,}內用逗號隔開多個元素,集合內元素的特徵有三個 (1)集合內元素必須是不可變元素 (2)集合內元素不能重複 (3)集合內元素無序 3、常用操作+內建的方法: 優先掌握的操作: 1、長度len s1 = {1,2,3} print(len(s1)) # 3 2、成員運算in和not in s1 = {1,2,3} print(3 in s1) # True print(3 not in s1) # False 1、|並集(合集):兩個集合併到一起 2、&交集:取兩個集合的共同部分 3、-差集:一個集合減掉與另一個集合共同的部分 4、^對稱差集(交叉補集):求兩個集合互相減,然後再併到一起 5、== 6、父集:>,>= 當一個集合完全包含了另外一個集合,該集合才能稱為爹 s1 = {1,2,3} s2 = {4,5,6} print(s1 >= s2) # False print(s1.issuperset(s2)) 7、子集:<,<= print(s1 <= s2) # False print(s1.issubset(s2)) 舉例: pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'} linuxs={'wupeiqi','oldboy','gangdan'} list1 = pythons | linuxs # {'egon', 'yuanhao', 'wupeiqi', 'oldboy', 'biubiu', 'gangdan', 'alex'} print(pythons.intersection(linuxs)) print(pythons.intersection_update(linuxs)) list2 = pythons & linuxs # {'wupeiqi', 'gangdan'} print(pythons.union(linuxs)) list3 = pythons - linuxs # {'yuanhao', 'alex', 'egon', 'biubiu'} print(pythons.difference(linuxs)) list4 = linuxs - pythons # {'oldboy'} print(linuxs.difference(pythons)) list5 = pythons ^ linuxs # {'egon', 'oldboy', 'yuanhao', 'biubiu', 'alex'} print(pythons.symmetric_difference(linuxs)) 需要掌握的操作: s1 = {1,2,3} 1、s1.update() s1.update({3,4,5}) print(s1) # {1, 2, 3, 4, 5} 2、s1.add() s1.add(4) print(s1) # {1, 2, 3, 4} 3、刪除 3.1 remove(3) s1.remove(3) print(s1) # {1, 2} 3.2 pop() res = s1.pop() # 隨機刪除 返回刪除的值 print(s1) print(res) 3.3 discard() s1.discard(444444) # 刪除不存在的元素不會報錯 print(s1) # {1, 2, 3} 3.4 clear() s1.clear() print(s1) # set() 4、copy res = s1.copy() print(res) # {1, 2, 3} 5、isdisjoint() s1 = {1,2,3} s2 = {4,5,6} print(s1.isdisjoint(s2)) # True ======================================該型別總結==================================== 存多個值 無序 集合型別本身是可變的,裡面的元素是可迭代的(能被for迴圈)
二、檔案處理
1、什麼是檔案
檔案時作業系統提供給使用者或者應用程式操作硬碟的一種機制
python中檔案是物件
Linux檔案:一切裝置都可以看成是檔案
檔案的作用:把一些資料以檔案的形式儲存起來,檔案由檔案系統進行管理,當程式下一次執行的時候,通過檔案系統快速找到對應的檔案,而找到對應的資料,省時省力。
2、為何要用檔案
讀寫檔案 ---> 存取硬碟
應用程式: open()
作業系統: 開啟檔案
計算機硬體: 硬碟空間
3、如何用檔案
1)開啟檔案
方式一:open 舉例:open("檔案路徑(可以是絕對路徑,也可以是相對路徑)",mode:"開啟檔案的方式(rwa,tb),encoding="字元編碼格式") #開啟檔案 可以將這個值做變數 f = open("檔案路徑(可以是絕對路徑,也可以是相對路徑)",mode:"開啟檔案的方式(rwa,tb),encoding="字元編碼格式") 這時 f=值 叫做檔案控制代碼/檔案物件,可以對檔案控制代碼做操作 f.close() #關閉檔案,每次用open開啟檔案操作完之後都要記得關閉檔案,不然耗費作業系統的資源,如果開啟檔案數量過多時會打不開。 方式二:with open 舉例 with open("檔案路徑(可以是絕對路徑,也可以是相對路徑)",mode:"開啟檔案的方式(rwa,tb),encoding="字元編碼格式") as f: 可以開啟多個檔案,用逗號隔開,如果開啟檔案數量多的話每個結尾可以加一個/,換行表示。 with(上下文管理),這個方式開啟檔案會在操作完檔案之後自動關閉檔案,無需手動關閉。
三、字元編碼
1、儲備知識:
執行python程式的三個步驟:python.py
1、先啟動python直譯器
2、直譯器會將文字檔案a.py內容由硬碟讀入記憶體
3、直譯器會解釋執行剛剛讀入記憶體的內容,識別python語法
2、什麼是字元編碼:
人類的字元 ----- 編碼 -----> 數字
人類的字元 <----- 解碼 ----- 數字
編碼與解碼的過程必須參照字元編碼表
3、為何要學習字元編碼:
為了解決執行python程式三個階段中2、3階段有可能出現的亂碼問題
4、字元編碼表發展史
一家獨大: ASCII:只能識別英文字元 8bit 對應一個英文字元 1byte = 8bit (byte:位元組 bit:(二進位制)位,位元) 天下大亂 GBK:能識別漢子與英文 用2Bytes對應一個字元 Shift-JIS:日文與英文 Euc -KR:韓文與英文 英文字元----->記憶體:ASCII格式的二進位制----->硬碟:ASCII格式的二進位制 中文字元、英文字元----->記憶體:gbk格式的二進位制----->硬碟:gbk格式的二進位制 日文字元、英文字元----->記憶體:shift-JIS格式的二進位制----->硬碟:shift-JIS格式的二進位制 萬國字元----->記憶體:unicode格式的二進位制----->硬碟:utf-8格式的二進位制 分久必合 unicode:1、萬國字元 2、相容老的字元編碼表
結論:
如何保證不亂碼
1、編碼與解碼必須參照同一張字元編碼表