# PYTHON 筆記(下) 第八章到第十章的濃縮 ## 第八章(類別) 跟JAVA的結構一樣 ### 類別 ``` class f(): def __init__(self,name): self.name = name a = f('yee') print(a.name) ``` 宣告結構 F F ->NAME 當 A -> F 此時 A->NAME 為更改值 yee ### 繼承 ``` class f(): def __init__(self,name): self.name = name class f1(f): def __init__(self,name): super().__init__('yee' + name) a = f('yee') b = f1('yee') print(a.name) print(b.name) ``` super() 繼承 父類別 須注意 class f1(f) 子類別(父類別) ### 測試 ``` try: test except: print('error') ``` 通常用於測試語法 當語法產生錯誤 ## 第九章(字串進階) 真的沒意義 :( ### UNICODE ``` import unicodedata def unicode_name(value): name = unicodedata.name(value) print('value =',value,'name=',name) return name def unicode_loookup(name): value = unicodedata.lookup(name) print('name =',name,'value=',value) return value if __name__ == '__main__': name = unicode_name('我') value = unicode_loookup(name) name = unicode_name('\u6211') value = unicode_loookup(name) name = unicode_name('\U00006211') value = unicode_loookup(name) name = unicode_name('\N{CJK UNIFIED IDEOGRAPH-6211}') value = unicode_loookup(name) ``` unicode_name 轉成uncicode unicode_lockup 尋找字元 ### 加密與解密 ``` def utf8(data): data_byte=data.encode('utf-8') data2=data_byte.decode('utf-8') print('將',data,'經過utf8編碼為',data_byte) print('將', data_byte, '經過utf8解碼為', data2) print(data,'的長度為',len(data)) print(data_byte, '的長度為', len(data_byte)) if __name__ == '__main__': print('我'.encode('unicode-escape')) utf8('我') utf8('\u6211') ``` 用utf8 做舉例 data.encode('utf-8') 資料加密 data_byte.decode('utf-8') 資料解密 ### 密碼產生 ``` import string import random if __name__ == '__main__': chs = string.ascii_letters + string.digits pwd = "" for x in range(random.randint(8,12)): pwd += random.choice(chs) print(pwd) ``` string.ascii_letters 生成所有字母 string.digits 生成所有數字 透過字串的方式 去產生隨機亂碼 ## 第十章(資料夾) ### 函式引入 ``` import os import glob ``` glob模組:用於查找匹配特定模式的檔路徑。 它支持類似於Unix shell的萬用字元匹配,如*和?等。 os模組:提供了一種方式來使用作業系統依賴的功能。 比如檔操作、路徑操作、進程管理等。 ### 查找所有檔案 ``` import os def find_dir(dir): fds = os.listdir(dir) for fd in fds: full_path = os.path.join(dir,fd) if os.path.isdir(full_path): print('資料夾:',full_path) find_dir(full_path) else: print('檔案:',full_path) if __name__ == '__main__': path = 'C:\\python-home' find_dir(path) ``` os.stdir 返回資料夾內容列表 os.path.isdir 檢查是否有此目錄 ### 查找特定類型檔案 ``` import glob if __name__ == '__main__': python_files = glob.glob('C:\\*.txt') for file_name in python_files: print('檔案為' + file_name) with open(file_name) as f: for line in f: print(line.rstrip()) print() ``` PATH 需填入絕對位置