
推導(dǎo)式:一句話構(gòu)建數(shù)據(jù)結(jié)構(gòu)推導(dǎo)式是極具特色的“語法糖”用一行代碼創(chuàng)建列表、字典、集合的簡潔語法?它能替代多行循環(huán)讓代碼更簡潔高效輸入源range list tuple set dict輸出源list tuple set dict推導(dǎo)式格式表達(dá)式 for 變量 in 輸入源 if 條件表達(dá)式 for 變量 in 輸入源 if 條件 for 變量 in 輸入源 if 條件嵌套內(nèi)容拓展列表(list)推導(dǎo)式[表達(dá)式 for 變量 in 輸入源 if 條件]集合set推導(dǎo)式{表達(dá)式 for 變量 in 輸入源 if 條件}字典(dict)推導(dǎo)式{k_表達(dá)式: v_表達(dá)式 for 變量 in 輸入源 if 條件}元組tuple推導(dǎo)式表達(dá)式 for 變量 in 輸入源 if 條件函數(shù)一次定義多次調(diào)用定義def function_name(arg1, arg2default,*/**arg3):#位置 默認(rèn) 不定長元組/字典封裝代碼塊調(diào)用function_nameargreturn 返回值 如果函數(shù)內(nèi)部沒有顯示寫return寫返回值 那函數(shù)的返回值為Nonereturn 不加返回值 結(jié)束當(dāng)前函數(shù) 停止函數(shù) 一般會放在一個邏輯結(jié)構(gòu)的最后一行函數(shù)參數(shù)順序1. 位置參數(shù) 默認(rèn)參數(shù)順序位置參數(shù) → 默認(rèn)參數(shù)2. 位置參數(shù)不定長參數(shù)順序:位置參數(shù) → 不定長位置參數(shù)3. 默認(rèn)參數(shù)不定長參數(shù)順序位置參數(shù) → 默認(rèn)參數(shù) → *args不定長位置參數(shù)值傳遞與引用傳遞值傳遞: 傳遞的是數(shù)值適用于實參類型為不可變類型 (int,float,bool,str,tuple)引用傳遞: 傳遞的是地址適用于實參類型為可變類型 (list,set,dict,class)值傳遞用于保護(hù)原始數(shù)據(jù)不被意外更改引用傳遞原地修改實現(xiàn)高效的數(shù)據(jù)共享?主函數(shù)程序入口if name main: mainenter案例ATM自動提款機文件操作File文件 Output 寫# 安全寫出到文本文件內(nèi)容with open(d:\\data.txt,modew,encodingutf-8)as f: #af.write(content\n)f.write(content\n)# 自動釋放資源無需手動 f.close()file 文件input讀# 安全讀取文本文件內(nèi)容with open(d:\\data.txt,moder,encodingutf-8)as f:content f.read()#全文 strreadline str# content f.readlines() #所有行l(wèi)istprint(content)# 自動釋放資源無需手動 f.close()with 語句上下文管理器可自動接管文件資源的生命周期。無論代碼是否正常執(zhí)行或中途拋出異常系統(tǒng)都會自動調(diào)用 close() 方法釋放資源python中的庫分類 標(biāo)準(zhǔn)庫 擴展庫 自定義庫在python中 使用 import 或者 from ...import 來導(dǎo)入相應(yīng)的庫import csv #其文件以純文本形式存儲表格數(shù)據(jù) 寫入磁盤后數(shù)據(jù)會長期保留 具備永久化存儲的物理能力csv.reader(file)逐行讀 list[str]適用于無表頭?csv.writer(file)?:列表形式寫支持 單行 多行writerow(row)單行writerows(rows)多行。?csv.DictReader(file)?字典形式讀鍵為列名(默認(rèn)首行即字段名支持按列名訪問?csv.DictWriter(file, fieldnames)??字典形式寫需指定 fieldnames支持writeheader()寫表頭writerow() / writerows()(寫行)異常程序崩潰采用 try-except-finally 結(jié)構(gòu)建立“安全網(wǎng)”。將可能引發(fā)錯誤的業(yè)務(wù)代碼放入 try 塊針對性捕獲特定異常并利用 finally 確保關(guān)鍵的清理工作如關(guān)閉網(wǎng)絡(luò)連接總能執(zhí)行。try:num int(input(請輸入整數(shù): ))error100/numprint(ok)except ValueError:print您輸入的不是數(shù)字請再次嘗試輸入)except ZeroDivisionError:print(除數(shù)不能為零except Exception as e:print未知錯誤finally:一定執(zhí)行的代碼自定義異常使用rasie語句拋出異常raise Exception“提示”num1int(input(請輸入整數(shù)))if num1 % 100 ! 0 or num10:raise exception(必須是100的倍數(shù) 且 必須不能是負(fù)數(shù))面向?qū)ο竺嫦驅(qū)ο笫且环N軟件開發(fā)方法核心是把現(xiàn)實事物抽象成“對象”通過對象之間的交互來解決問題類是抽象的定義了對象共有的屬性和行為而對象是具體的是類的實例化產(chǎn)物 先有類 才有對象三大核心特征封裝、繼承、多態(tài)面向過程采購-備菜-點單-烹飪-上菜-結(jié)賬面向?qū)ο蟛少弿N師-備菜廚師-點單服務(wù)員-烹飪廚師-上菜服務(wù)員-結(jié)賬服務(wù)員類 功能封裝對象功能使用類 功能封裝封裝封裝是一種將數(shù)據(jù)和操作數(shù)據(jù)的方法函數(shù)結(jié)合在一起形成一個獨立的對象的概念。封裝有助于保護(hù)數(shù)據(jù)不被外部代碼直接訪問和修改同時提供了一種方法來控制對這些數(shù)據(jù)的訪問屬性靜態(tài)特征 類似變量存儲數(shù)據(jù)方法動態(tài)特征 類似函數(shù)封裝功能構(gòu)造方法(魔法方法 /魔術(shù)方法)創(chuàng)建對象 初始化對象的成員 為屬性賦值如果不顯示聲明構(gòu)造方法 那么 系統(tǒng)會自動提供一個無參構(gòu)造 方便用戶創(chuàng)建對象如果顯示的聲明了構(gòu)造方法 那么系統(tǒng)將不會繼續(xù)提供無參構(gòu)造創(chuàng)建對象格式對象名類名()存值 取值調(diào)用屬性對象名.屬性名變量名值對象名.屬性名調(diào)用方法 函數(shù)對象名.函數(shù)名/方法名繼承建立類之間的層級關(guān)系子類自動獲取父類的屬性和方法實現(xiàn)代碼復(fù)用提高開發(fā)效率父類的 給予 子類的 一種獲取繼承格式子類繼承指定繼承父類父類將子類中共有的一些屬性和方法抽取出來放到一個公共的位置多態(tài)前提 1.必須要有繼承關(guān)系2.必須要子類重寫父類的方法同一操作作用于不同對象產(chǎn)生不同的執(zhí)行結(jié)果。不修改原有代碼即可擴展功能增強了程序的靈活性多態(tài)主要通過繼承和函數(shù)重載/重寫方法重寫來實現(xiàn)time / datetime 模塊python 中 處理日期和時間的標(biāo)準(zhǔn)庫模塊time 模塊 偏向底層適合簡單的計時、延遲操作以及時間戳與結(jié)構(gòu)化時間的轉(zhuǎn)換。datetime 模塊面向?qū)ο筇峁└呒壍娜掌谟嬎恪⒏袷交蜁r區(qū)處理功能是日常開發(fā)中處理業(yè)務(wù)邏輯的首選。timet1time.localtime() #結(jié)構(gòu)化時間字符串與time 互轉(zhuǎn)格式化字符串 -時間?strptime (string parse time)#2026-06-10 日期格式轉(zhuǎn)字符str1time.strptime(str, %Y-%m-%d %H:%M:%S)時間 - 字符串?strftime (string format time)t2time.strftime(%Y-%m-%d,t1)t1datetime.datetime.now() #獲取當(dāng)前時間datetimenow datetime.now()字符串 -時間?strptime (string parse time)datetime.datetime.strptime(str1, %Y-%m-%d %H:%M:%S)時間 - 字符串?strftime (string format time)datetime.datetime.strftime(dt1, %Y-%m-%d)