色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Python核心概念解析:可變性、無(wú)序性與對(duì)象模型

Python核心概念解析:可變性、無(wú)序性與對(duì)象模型 簡(jiǎn)介本資源是南開大學(xué)軟件學(xué)院Python課程期末復(fù)習(xí)的系統(tǒng)性整理筆記面向計(jì)算機(jī)相關(guān)專業(yè)本科生及Python初學(xué)者聚焦核心考點(diǎn)與易錯(cuò)難點(diǎn)助力高效備考與知識(shí)體系構(gòu)建。內(nèi)容覆蓋數(shù)據(jù)結(jié)構(gòu)字典、集合、元組、列表的特性與操作、內(nèi)存管理引用機(jī)制、淺拷貝與深拷貝、面向?qū)ο缶幊填惻c實(shí)例屬性、私有成員、classmethod/staticmethod裝飾器、C3算法下的MRO繼承順序、魔法函數(shù)init、str、__dict__等、函數(shù)進(jìn)階*args/**kwargs、默認(rèn)參數(shù)陷阱、生成器與三器一魔以及正則表達(dá)式等關(guān)鍵模塊知識(shí)點(diǎn)講解結(jié)合典型代碼示例與運(yùn)行結(jié)果分析。資源為1個(gè)5.28MB的DOCX文檔結(jié)構(gòu)清晰、排版規(guī)范含大量對(duì)比表格、內(nèi)存圖示與語(yǔ)法速查片段便于復(fù)習(xí)查閱與重點(diǎn)標(biāo)注。目前已有1200人學(xué)習(xí)下載是兼顧理論深度與應(yīng)試實(shí)用性的高質(zhì)量期末沖刺資料。1. Python期末復(fù)習(xí)不是背題庫(kù)而是搞懂“Python怎么想問題”一份南開軟院學(xué)生親測(cè)有效的入門路徑你是不是也這樣翻開《Python期末復(fù)習(xí)超全》這個(gè)標(biāo)題第一反應(yīng)是——“又來(lái)一套題背完就忘考完就丟”別急這份材料根本不是傳統(tǒng)意義上的“題庫(kù)”它是一份用真實(shí)課堂節(jié)奏打磨出來(lái)的思維導(dǎo)圖式復(fù)習(xí)指南。它不從“print(Hello World)”開始教而是直接帶你站在南開軟件學(xué)院老師出題的視角看為什么字典和集合必須無(wú)序?yàn)槭裁丛M能當(dāng)字典的key而列表不能為什么list.sort()沒有返回值但sorted()卻有這些問題背后不是規(guī)則而是Python對(duì)內(nèi)存、對(duì)象、引用的真實(shí)處理邏輯。它適合誰(shuí)適合那個(gè)剛學(xué)完循環(huán)和if語(yǔ)句、一看到“MRO算法”就頭皮發(fā)麻、抄了十遍super()還是不知道它在找誰(shuí)的你也適合那個(gè)已經(jīng)會(huì)寫爬蟲但總被面試官問“a [1,2]; b a; b.append(3)之后a變沒變”給問懵的新手。這不是讓你“多做一道題”而是幫你把散落的知識(shí)點(diǎn)焊進(jìn)一個(gè)叫“Python世界觀”的底座里——底座穩(wěn)了新代碼來(lái)了你第一反應(yīng)不再是“這行報(bào)錯(cuò)我搜過但看不懂”而是“哦它在找這個(gè)對(duì)象的__enter__方法”。2. 先搞懂一個(gè)概念Python里“無(wú)序”不是亂序而是“不靠位置說話”字典與集合的本質(zhì)區(qū)別很多新手卡在第一步為什么老師反復(fù)強(qiáng)調(diào)“字典和集合是無(wú)序的”可我print(dict)明明看到鍵值對(duì)排得整整齊齊這里藏著一個(gè)關(guān)鍵誤會(huì)——“無(wú)序”不是指打印出來(lái)不整齊而是指Python不保證、也不依賴元素的物理存儲(chǔ)順序來(lái)定義它們的身份和行為。我們拆開來(lái)看。2.1 字典靠“鍵”查不靠“第幾個(gè)”想象你有一本紙質(zhì)通訊錄里面按人名拼音排序。你找“張三”翻到P頁(yè)找“李四”翻到L頁(yè)。你從不關(guān)心“張三”是第37頁(yè)、“李四”是第21頁(yè)——你只認(rèn)名字。字典就是這本通訊錄的電子版。它的核心能力是O(1)平均時(shí)間復(fù)雜度的查找靠的是哈希表Hash Table當(dāng)你寫my_dict[name]Python立刻把name算出一個(gè)數(shù)字哈希值跳到內(nèi)存里對(duì)應(yīng)的位置取值完全跳過了“從頭數(shù)第幾個(gè)”的過程。所以哪怕你先my_dict[z] 100再my_dict[a] 1它內(nèi)部存儲(chǔ)順序可能反著來(lái)但你調(diào)用my_dict[a]永遠(yuǎn)秒出結(jié)果。這就是“無(wú)序”的價(jià)值犧牲順序換取速度。# 看似有序?qū)崉t偶然 student_grades {math: 85, english: 92, science: 78} print(student_grades) # 可能輸出 {math: 85, english: 92, science: 78} # 但這順序不是語(yǔ)言保證的Python 3.7雖保持插入順序?yàn)榧嫒菪约拥膬?yōu)化但邏輯上它仍是“無(wú)序結(jié)構(gòu)” # 你絕不能寫first_subject list(student_grades.keys())[0] // 這是危險(xiǎn)的依賴提示list(dict.keys())得到的列表順序在Python 3.7中確實(shí)是插入順序但這屬于實(shí)現(xiàn)細(xì)節(jié)不是語(yǔ)言規(guī)范??荚嚮蛎嬖囍腥艨疾臁白值涫欠裼行颉睒?biāo)準(zhǔn)答案仍是“邏輯上無(wú)序”因?yàn)樗脑O(shè)計(jì)目標(biāo)從來(lái)不是維護(hù)順序而是高效查找。2.2 集合去重的終極形態(tài)連“位置”都不給你留集合更進(jìn)一步。它連“鍵”都不需要只要求元素唯一且可哈希。它的底層也是哈希表但只存“鍵”沒有“值”。所以當(dāng)你寫my_set {1, 2, 3}Python做的不是“記住1在前、2在中、3在后”而是“記住內(nèi)存里有一個(gè)位置存著1一個(gè)位置存著2一個(gè)位置存著3”。你無(wú)法用索引my_set[0]訪問因?yàn)樗鼔焊鶝]定義“第0個(gè)”是誰(shuí)。它的所有操作——add(),remove(),in判斷——都基于哈希查找時(shí)間復(fù)雜度同樣是O(1)。# 創(chuàng)建空集合必須用 set(){} 是字典這是新手高頻翻車點(diǎn) empty_set set() # ? 正確創(chuàng)建空集合 empty_dict {} # ? 正確創(chuàng)建空字典 # wrong_set {} # ? 錯(cuò)誤這創(chuàng)建的是字典不是集合 # 集合自動(dòng)去重且不記錄順序 nums [1, 2, 2, 3, 1, 4] unique_nums set(nums) print(unique_nums) # 輸出可能是 {1, 2, 3, 4} 或 {4, 1, 2, 3}順序不重要 # 檢查是否存在快如閃電 print(2 in unique_nums) # TrueO(1)時(shí)間2.3 對(duì)比列表為什么列表能索引而字典/集合不能列表是“數(shù)組”的Python化身。它在內(nèi)存里是一塊連續(xù)的空間每個(gè)位置存一個(gè)元素的引用ID。所以my_list[0]就是“去內(nèi)存地址A取第一個(gè)引用”my_list[1]就是“去地址A8字節(jié)取第二個(gè)引用”。這種結(jié)構(gòu)天生支持索引和切片但插入/刪除中間元素要移動(dòng)后面所有元素時(shí)間復(fù)雜度O(n)。特性列表 (list)字典 (dict)集合 (set)是否有序有序位置即身份邏輯無(wú)序鍵即身份邏輯無(wú)序元素即身份是否可索引?list[0]?dict[0]報(bào)錯(cuò)?set[0]報(bào)錯(cuò)是否可重復(fù)? 允許重復(fù)元素? key不能重復(fù)值可重復(fù)? 元素絕對(duì)唯一核心優(yōu)勢(shì)快速按位置訪問、切片快速按鍵查找、插入、刪除快速去重、成員判斷、集合運(yùn)算2.4 常見問題排查為什么我的字典“看起來(lái)有序”卻報(bào)錯(cuò)現(xiàn)象1我用for k in my_dict:遍歷輸出順序和我插入的一樣但老師說字典無(wú)序我該信誰(shuí)原因Python 3.7為提升用戶體驗(yàn)?zāi)J(rèn)保持插入順序CPython實(shí)現(xiàn)細(xì)節(jié)但這不改變其“無(wú)序數(shù)據(jù)結(jié)構(gòu)”的本質(zhì)定義??荚囍腥魡枴白值涫欠裼行颉贝稹斑壿嬌蠠o(wú)序”才得分。依賴順序?qū)懘a如取list(dict.keys())[0]在舊版本Python或某些解釋器下會(huì)崩潰。解決所有需要確定順序的場(chǎng)景顯式轉(zhuǎn)換sorted(dict.keys())按字母序或list(dict.items())按插入序僅限3.7且不推薦依賴。現(xiàn)象2my_set {1, 2, 3}; print(my_set[0])報(bào)錯(cuò)TypeError: set object is not subscriptable。原因集合不支持索引操作符[]因?yàn)樗鼪]有“第0個(gè)”的概念。它的設(shè)計(jì)哲學(xué)是“只問‘有沒有’不問‘在哪兒’”。解決若需按順序處理先轉(zhuǎn)成列表for item in sorted(my_set):或list(my_set)[0]但后者順序不保證慎用。現(xiàn)象3my_dict {a: 1, b: 2}; my_dict[c]報(bào)錯(cuò)KeyError但my_dict.get(c)返回None。原因[]是“強(qiáng)硬訪問”找不到就炸.get()是“禮貌詢問”找不到就給個(gè)默認(rèn)答案默認(rèn)None。這是Python“請(qǐng)求寬恕而非許可”EAFP哲學(xué)的體現(xiàn)。解決處理可能不存在的key時(shí)優(yōu)先用.get(key, default_value)避免try/except過度使用?,F(xiàn)象4my_list [1, 2, 3]; my_list.append([4, 5])后my_list變成[1, 2, 3, [4, 5]]但我想把4和5“加進(jìn)去”而不是“加一個(gè)列表”。原因.append()是“加一個(gè)元素”.extend()才是“加多個(gè)元素”。新手?;煜@兩個(gè)方法。解決記口訣“append是單個(gè)extend是展開”。要加多個(gè)用my_list.extend([4, 5])結(jié)果是[1, 2, 3, 4, 5]。3. 別再死記硬背了理解“可變”與“不可變”才能真正看懂Python的內(nèi)存“元組不可變列表可變”——這句話你背過但當(dāng)a (1, 2); b a; b (3,)后a還是(1, 2)而a [1, 2]; b a; b [3]后a卻變成了[1, 2, 3]你是不是瞬間懵了這背后不是語(yǔ)法玄學(xué)而是Python對(duì)對(duì)象身份identity和對(duì)象值value的嚴(yán)格區(qū)分。搞懂這個(gè)你才算真正踏入Python的大門。3.1 一切皆對(duì)象三個(gè)身份證缺一不可Python里每個(gè)東西都是對(duì)象它有三張“身份證”標(biāo)識(shí)identity對(duì)象在內(nèi)存中的唯一地址用id()函數(shù)查看。就像你的身份證號(hào)一生不變。類型type對(duì)象的種類用type()查看。比如int,str,list。值value對(duì)象當(dāng)前攜帶的數(shù)據(jù)。比如數(shù)字5字符串hello。關(guān)鍵來(lái)了變量如a,b不是盒子而是貼在對(duì)象身上的標(biāo)簽。a 5的意思是“把標(biāo)簽a貼到內(nèi)存里那個(gè)值為5的對(duì)象上”。b a的意思是“把另一個(gè)標(biāo)簽b也貼到同一個(gè)對(duì)象上”。所以a和b指向同一個(gè)id。# 不可變對(duì)象數(shù)字 x 10 y x print(id(x) id(y)) # Truex和y指向同一個(gè)整數(shù)對(duì)象 x x 1 # 注意這不是修改10而是讓x指向一個(gè)新的對(duì)象11 print(x) # 11 print(y) # 10y依然指著原來(lái)的10 print(id(x) id(y)) # False現(xiàn)在x和y指向不同對(duì)象了3.2 可變對(duì)象標(biāo)簽貼在“容器”上容器里的東西可以換列表、字典、集合是“容器型”對(duì)象。a [1, 2]的意思是在內(nèi)存里造一個(gè)“箱子”列表對(duì)象把1和2放進(jìn)去再把標(biāo)簽a貼在這個(gè)箱子上。b a是把另一個(gè)標(biāo)簽b也貼到同一個(gè)箱子上。此時(shí)通過a或b去修改箱子里的東西比如a.append(3)箱子本身沒換只是里面多了個(gè)3所以b看到的也是[1, 2, 3]。# 可變對(duì)象列表 a [1, 2] b a # b和a指向同一個(gè)列表對(duì)象 print(id(a) id(b)) # True a.append(3) # 修改箱子往里面加一個(gè)3 print(a) # [1, 2, 3] print(b) # [1, 2, 3]b看到的也是修改后的箱子 # 關(guān)鍵對(duì)比 對(duì)可變對(duì)象是原地修改對(duì)不可變對(duì)象是創(chuàng)建新對(duì)象 c [1, 2] d c c [3] # 等價(jià)于 c.extend([3])原地修改 print(c) # [1, 2, 3] print(d) # [1, 2, 3]d也變了 e (1, 2) f e e (3,) # 等價(jià)于 e e (3,)創(chuàng)建新元組 print(e) # (1, 2, 3) print(f) # (1, 2)f沒變3.3 元組的“不可變”到底指什么為什么它能當(dāng)字典key元組的不可變是指元組對(duì)象自身包含的元素引用不能被修改。你不能做my_tuple[0] 10。但它不保證它里面的元素本身不可變?nèi)绻M里存了一個(gè)列表那個(gè)列表還是可以變的。# 元組的不可變是“一層”的 t (1, [2, 3], hello) # t[0] 10 # ? 報(bào)錯(cuò)不能改元組的第一個(gè)元素 # t[2] world # ? 報(bào)錯(cuò)不能改元組的第三個(gè)元素 t[1].append(4) # ? 可以改的是元組里那個(gè)列表對(duì)象元組只是存了它的引用 print(t) # (1, [2, 3, 4], hello) # 為什么能當(dāng)key因?yàn)樽值涞膋ey必須是“可哈希的”hashable # 可哈希意味著對(duì)象的hash值在其生命周期內(nèi)不變且相等的對(duì)象必須有相同hash值 # 不可變對(duì)象str, int, tuple天然滿足可變對(duì)象list, dict, set不滿足因?yàn)橹底兞薶ash就得變 my_dict {(1, 2): point, (a, b): pair} # ? 元組可哈希能當(dāng)key # my_dict {[1, 2]: point} # ? 列表不可哈希報(bào)錯(cuò) TypeError3.4 常見問題排查為什么我的函數(shù)默認(rèn)參數(shù)“記住了”上次的值現(xiàn)象寫了一個(gè)函數(shù)def add_item(item, my_list[]): my_list.append(item); return my_list第一次調(diào)用add_item(1)返回[1]第二次調(diào)用add_item(2)卻返回[1, 2]原因默認(rèn)參數(shù)my_list[]是在函數(shù)定義時(shí)創(chuàng)建的不是每次調(diào)用時(shí)創(chuàng)建。這個(gè)空列表對(duì)象在內(nèi)存里只有一份所有不傳my_list參數(shù)的調(diào)用都共享這個(gè)列表對(duì)象。這就是“可變默認(rèn)參數(shù)陷阱”。解決永遠(yuǎn)用None作為默認(rèn)值然后在函數(shù)體內(nèi)檢查并創(chuàng)建新對(duì)象# ? 危險(xiǎn)可變默認(rèn)參數(shù) def bad_append(item, lst[]): lst.append(item) return lst # ? 安全用None作哨兵 def good_append(item, lstNone): if lst is None: lst [] # 每次調(diào)用都創(chuàng)建新列表 lst.append(item) return lst print(good_append(1)) # [1] print(good_append(2)) # [2]干凈現(xiàn)象a [1, 2]; b a; b[0] 99; print(a)輸出[99, 2]我以為b a是復(fù)制了一份。原因是賦值不是復(fù)制。它只是讓b也指向a所指向的那個(gè)列表對(duì)象。要真正復(fù)制得用copy()淺拷貝或deepcopy()深拷貝。解決明確你的需求只需一層復(fù)制列表里全是不可變對(duì)象b a.copy()或b a[:]需要完全獨(dú)立副本列表里還有列表import copy; b copy.deepcopy(a)4. 面向?qū)ο蟛皇庆偶际亲尨a“自己管自己”從self到super()的實(shí)戰(zhàn)邏輯“面向?qū)ο缶幊獭甭犉饋?lái)高大上但在Python期末復(fù)習(xí)里它最樸素的目標(biāo)就一個(gè)把數(shù)據(jù)屬性和操作數(shù)據(jù)的代碼方法打包在一起讓這個(gè)包對(duì)象能自己管理自己的狀態(tài)。self不是語(yǔ)法糖它是這個(gè)包的“內(nèi)部身份證”super()不是魔法它是這個(gè)包在家族譜系里“向上找長(zhǎng)輩幫忙”的聯(lián)絡(luò)方式。我們從一個(gè)具體例子出發(fā)。4.1self對(duì)象的“我”不是關(guān)鍵字是約定self只是一個(gè)形參名你可以叫它this或me但所有人都叫self這是約定。它的作用是讓類里的方法能明確知道“我現(xiàn)在操作的是哪個(gè)具體的實(shí)例” 沒有self方法就不知道自己在跟誰(shuí)對(duì)話。class Student: def __init__(self, name, score): self.name name # 把參數(shù)name存到這個(gè)實(shí)例的name屬性里 self.score score # 把參數(shù)score存到這個(gè)實(shí)例的score屬性里 def introduce(self): # self.name 就是“我自己的名字”不是某個(gè)全局變量 return f我是{self.name}分?jǐn)?shù)是{self.score} def upgrade(self, points): # self.score 就是“我自己的分?jǐn)?shù)”升級(jí)只影響我自己 self.score points return f{self.name}升級(jí)了新分?jǐn)?shù){self.score} # 創(chuàng)建兩個(gè)不同的實(shí)例兩個(gè)不同的學(xué)生 alice Student(Alice, 85) bob Student(Bob, 92) print(alice.introduce()) # 我是Alice分?jǐn)?shù)是85 print(bob.introduce()) # 我是Bob分?jǐn)?shù)是92 alice.upgrade(5) # Alice升級(jí)了新分?jǐn)?shù)90 print(bob.score) # 92Bob的分?jǐn)?shù)完全沒受影響4.2 繼承不是“抄代碼”是“建立家族關(guān)系”繼承的核心是讓子類自動(dòng)獲得父類的所有屬性和方法并可以在此基礎(chǔ)上添加新功能或修改舊功能。它建立的是一種“is-a”是一個(gè)關(guān)系Dogis-aAnimal。南開復(fù)習(xí)材料里提到的“鉆石繼承”和“MRO算法”就是當(dāng)這個(gè)家族關(guān)系變得復(fù)雜比如Dog同時(shí)繼承Animal和Pet時(shí)Python如何確保每個(gè)方法只被調(diào)用一次、且按正確順序調(diào)用的規(guī)則。class Animal: def __init__(self, name): self.name name def speak(self): return f{self.name} makes a sound class Dog(Animal): # Dog 繼承 Animal def speak(self): # 重寫override父類方法 return f{self.name} barks: Woof! class Cat(Animal): def speak(self): return f{self.name} meows: Meow! # Dog和Cat自動(dòng)有了__init__和name屬性無(wú)需重復(fù)寫 dog Dog(Buddy) cat Cat(Whiskers) print(dog.speak()) # Buddy barks: Woof! print(cat.speak()) # Whiskers meows: Meow!4.3super()家族里的“找長(zhǎng)輩”協(xié)議解決鉆石繼承難題當(dāng)繼承鏈變長(zhǎng)比如class Medium1(Father, Mother):而Father和Mother又都繼承自Grandparent就可能出現(xiàn)“Grandparent.__init__()被調(diào)用兩次”的問題鉆石繼承。super()就是Python提供的解決方案它不指定具體調(diào)哪個(gè)父類而是按照方法解析順序MRO去找下一個(gè)應(yīng)該執(zhí)行的類的方法。class Grandparent: def __init__(self, name): print(fGrandparent.__init__({name})) self.name name class Father(Grandparent): def __init__(self, name, job): print(fFather.__init__({name}, {job})) super().__init__(name) # 調(diào)用MRO中下一個(gè)類Grandparent的__init__ self.job job class Mother(Grandparent): def __init__(self, name, hobby): print(fMother.__init__({name}, {hobby})) super().__init__(name) # 同樣調(diào)用Grandparent.__init__ self.hobby hobby class Child(Father, Mother): def __init__(self, name, job, hobby, school): print(fChild.__init__({name}, {job}, {hobby}, {school})) # super()會(huì)按MRO順序調(diào)用Father.__init__ - Mother.__init__ - Grandparent.__init__ # Grandparent.__init__只執(zhí)行一次 super().__init__(name, job) # 先調(diào)Father.__init__ # 注意Mother.__init__不會(huì)被自動(dòng)調(diào)用需要手動(dòng)補(bǔ)上或在Father.__init__里用super調(diào)用 # 這里簡(jiǎn)化實(shí)際復(fù)雜繼承需仔細(xì)設(shè)計(jì) self.school school # 查看MRO順序 print(Child.__mro__) # 輸出類似(class __main__.Child, class __main__.Father, class __main__.Mother, class __main__.Grandparent, class object) # Python 3 使用C3線性化算法計(jì)算MRO確保每個(gè)父類只出現(xiàn)一次且子類總在父類之前4.4 常見問題排查為什么__init__里不寫super()我的父類屬性就沒了現(xiàn)象class Dog(Animal): def __init__(self, name, breed): self.breed breed然后dog Dog(Buddy, Golden)print(dog.name)報(bào)錯(cuò)AttributeError。原因你重寫了__init__但沒調(diào)用父類Animal.__init__所以self.name name這行根本沒執(zhí)行name屬性從未被創(chuàng)建。解決只要重寫了__init__就必須顯式調(diào)用super().__init__(...)來(lái)初始化父類部分?,F(xiàn)象class A: def method(self): print(A); class B(A): def method(self): print(B); class C(A): def method(self): print(C); class D(B, C): pass; D().method()輸出B為什么不是C或報(bào)錯(cuò)原因這就是MRO在起作用。D.__mro__是(D, B, C, A, object)所以method首先在D找沒找到再到B找找到了就執(zhí)行B.method不再繼續(xù)往下找C。解決理解MRO是調(diào)試多繼承的關(guān)鍵。用ClassName.__mro__隨時(shí)查看順序?,F(xiàn)象property裝飾器是什么為什么song.length能像屬性一樣訪問但song.set_length(100)卻要調(diào)用方法原因property把一個(gè)方法偽裝成了屬性。song.length觸發(fā)的是length這個(gè)property方法它內(nèi)部可以做任何邏輯比如檢查合法性但調(diào)用者感覺不到。length.setter則定義了song.length 100時(shí)該做什么。解決這是封裝的利器。把數(shù)據(jù)校驗(yàn)、計(jì)算邏輯藏在屬性訪問背后對(duì)外提供簡(jiǎn)潔接口。class Song: def __init__(self, title): self.title title self._length 0 # 真實(shí)存儲(chǔ)用私有屬性 property def length(self): getter讀取length return self._length length.setter def length(self, value): setter設(shè)置length帶校驗(yàn) if value 0: raise ValueError(Length cannot be negative) self._length value song Song(My Song) song.length 180 # 觸發(fā) setter自動(dòng)校驗(yàn) print(song.length) # 觸發(fā) getter返回1805. 從“能跑通”到“真理解”動(dòng)手跑通第一個(gè)面向?qū)ο笮№?xiàng)目——學(xué)生成績(jī)管理系統(tǒng)光看概念容易飄現(xiàn)在我們動(dòng)手做一個(gè)極簡(jiǎn)但完整的項(xiàng)目一個(gè)能錄入、查詢、統(tǒng)計(jì)學(xué)生成績(jī)的系統(tǒng)。它會(huì)用到復(fù)習(xí)材料里所有的核心概念類、屬性、方法、繼承、super()、property、異常處理。每一步都解釋清楚“為什么這么寫”而不是“照著抄”。5.1 第一步定義基礎(chǔ)類Student封裝數(shù)據(jù)和基本行為我們要讓每個(gè)學(xué)生對(duì)象自己記住自己的名字、各科成績(jī)并能算出自己的平均分。這正是self和屬性的用武之地。class Student: def __init__(self, name, scoresNone): 初始化學(xué)生 :param name: 學(xué)生姓名str :param scores: 成績(jī)字典如 {math: 85, english: 92}默認(rèn)為空字典 self.name name # 用None作默認(rèn)值避免可變默認(rèn)參數(shù)陷阱 self._scores scores if scores is not None else {} property def scores(self): getter返回成績(jī)字典的副本防止外部直接修改 return self._scores.copy() # 返回副本保護(hù)內(nèi)部數(shù)據(jù) def add_score(self, subject, score): 添加或更新一門課的成績(jī) if not isinstance(score, (int, float)) or score 0 or score 100: raise ValueError(Score must be a number between 0 and 100) self._scores[subject] score def get_average(self): 計(jì)算并返回平均分 if not self._scores: return 0.0 return sum(self._scores.values()) / len(self._scores) def __str__(self): 定義打印學(xué)生時(shí)的友好格式 avg self.get_average() return f學(xué)生: {self.name}, 成績(jī): {self._scores}, 平均分: {avg:.1f}解釋這里用了property保護(hù)scores外部只能讀不能改add_score里做了輸入校驗(yàn)__str__讓print(student)輸出可讀信息。這些都是面向?qū)ο蠓庋b的體現(xiàn)。5.2 第二步定義管理類GradeManager用組合代替繼承復(fù)習(xí)材料提到“組合就是沒有繼承但是用了人家的實(shí)例”。GradeManager不需要是Student的子類它只需要“擁有”一堆Student實(shí)例來(lái)管理。這就是組合Composition比繼承Inheritance更靈活、更符合實(shí)際。class GradeManager: def __init__(self): self._students {} # 用字典存學(xué)生key是姓名value是Student對(duì)象 def add_student(self, name): 添加一個(gè)新學(xué)生 if name in self._students: raise ValueError(f學(xué)生 {name} 已存在) self._students[name] Student(name) def add_score(self, name, subject, score): 給指定學(xué)生添加成績(jī) if name not in self._students: raise ValueError(f學(xué)生 {name} 不存在) self._students[name].add_score(subject, score) def get_student_average(self, name): 獲取指定學(xué)生的平均分 if name not in self._students: raise ValueError(f學(xué)生 {name} 不存在) return self._students[name].get_average() def get_class_average(self): 計(jì)算全班平均分 if not self._students: return 0.0 # 對(duì)每個(gè)學(xué)生的平均分求平均 averages [s.get_average() for s in self._students.values()] return sum(averages) / len(averages) def list_all_students(self): 列出所有學(xué)生信息 if not self._students: print(暫無(wú)學(xué)生) return for student in self._students.values(): print(student)解釋GradeManager內(nèi)部用self._students字典管理Student對(duì)象它調(diào)用Student的方法如add_score,get_average但不繼承Student。這清晰劃分了職責(zé)Student管自己GradeManager管一群Student。5.3 第三步運(yùn)行主程序體驗(yàn)“對(duì)象自己管自己”現(xiàn)在我們寫一個(gè)簡(jiǎn)單的交互式主程序讓它跑起來(lái)。你會(huì)看到所有復(fù)雜的邏輯數(shù)據(jù)校驗(yàn)、平均分計(jì)算、錯(cuò)誤提示都被封裝在類里主程序只需調(diào)用清晰的方法名。def main(): manager GradeManager() # 添加學(xué)生 try: manager.add_student(張三) manager.add_student(李四) print(? 學(xué)生添加成功) except ValueError as e: print(f? 添加失敗: {e}) # 添加成績(jī) try: manager.add_score(張三, 數(shù)學(xué), 85) manager.add_score(張三, 英語(yǔ), 92) manager.add_score(李四, 數(shù)學(xué), 78) manager.add_score(李四, 英語(yǔ), 88) print(? 成績(jī)添加成功) except ValueError as e: print(f? 添加成績(jī)失敗: {e}) # 查詢 print(\n--- 學(xué)生詳情 ---) manager.list_all_students() print(f\n--- 張三的平均分: {manager.get_student_average(張三):.1f}) print(f--- 全班平均分: {manager.get_class_average():.1f}) # 嘗試錯(cuò)誤操作 try: manager.add_score(王五, 數(shù)學(xué), 90) # 王五不存在 except ValueError as e: print(f?? 捕獲預(yù)期錯(cuò)誤: {e}) if __name__ __main__: main()運(yùn)行結(jié)果? 學(xué)生添加成功 ? 成績(jī)添加成功 --- 學(xué)生詳情 --- 學(xué)生: 張三, 成績(jī): {數(shù)學(xué): 85, 英語(yǔ): 92}, 平均分: 88.5 學(xué)生: 李四, 成績(jī): {數(shù)學(xué): 78, 英語(yǔ): 88}, 平均分: 83.0 --- 張三的平均分: 88.5 --- 全班平均分: 85.8 ?? 捕獲預(yù)期錯(cuò)誤: 學(xué)生 王五 不存在5.4 常見問題排查為什么我的GradeManager報(bào)錯(cuò)GradeManager object has no attribute _students現(xiàn)象運(yùn)行main()時(shí)manager.add_student(張三)報(bào)錯(cuò)說GradeManager沒有_students屬性。原因最可能的原因是GradeManager.__init__方法名寫錯(cuò)了比如寫成了def init(self):少了個(gè)下劃線或def __init__(self, name):多了一個(gè)參數(shù)。Python只會(huì)自動(dòng)調(diào)用名為__init__且參數(shù)只有self或self加其他必要參數(shù)的方法。解決仔細(xì)檢查__init__的拼寫和參數(shù)。用print(dir(manager))可以查看對(duì)象有哪些屬性確認(rèn)_students是否在其中?,F(xiàn)象manager.add_score(張三, 數(shù)學(xué), 150)沒有報(bào)錯(cuò)但成績(jī)存了150。原因add_score方法里的校驗(yàn)條件寫錯(cuò)了比如score 100寫成了score 100或者漏掉了or score 100。解決在add_score方法里加一行print(fDebug: trying to set {subject}{score})運(yùn)行看是否進(jìn)入方法然后逐行檢查if條件。現(xiàn)象print(manager.get_student_average(張三))輸出0.0但我知道他有成績(jī)。原因get_student_average方法里self._students[name]取到了學(xué)生對(duì)象但調(diào)用get_average()時(shí)Student.get_average()里self._scores是空字典??赡躠dd_score沒成功執(zhí)行或者_(dá)scores字典的key寫錯(cuò)了比如存了shuxue但查數(shù)學(xué)。解決在Student.get_average里加print(fDebug scores: {self._scores})看實(shí)際存了什么。6. 下一步學(xué)什么從“會(huì)用”到“會(huì)設(shè)計(jì)”一份南開軟院風(fēng)格的進(jìn)階路線圖走到這一步你已經(jīng)能讀懂南開軟件學(xué)院期末復(fù)習(xí)材料里的大部分內(nèi)容并親手寫出一個(gè)有封裝、有校驗(yàn)、有錯(cuò)誤處理的小系統(tǒng)。但這只是起點(diǎn)。真正的Python高手不是知道多少語(yǔ)法而是能在面對(duì)一個(gè)新需求時(shí)快速判斷“該用什么結(jié)構(gòu)、該封裝到哪里、邊界在哪”。下面是我當(dāng)年跟著南開導(dǎo)師做課程設(shè)計(jì)時(shí)總結(jié)出的、從“會(huì)用”躍遷到“會(huì)設(shè)計(jì)”的三步走路線每一步都配了具體可練的小任務(wù)。6.1 第一步把“魔法函數(shù)”從“背名字”變成“主動(dòng)本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
蜜桃臀一区二区aV| 蜜色网色哟哟| 91麻豆va国产精品| 清清一区二区三区四区不卡视频| 亚拍在线| 欧美性爱无码一区二区三区| 丁香五月性| 久久精品亚洲东京热色播| 密臀视频一区二区三区| 欧美综合亚洲综合| 亞洲久久直播| 精品免费国产二区三区| 亚洲欧洲综合| 日韩在线观看字幕精品| 亚洲 欧美 另类 综合 偷拍| 69少妇一区二区| 婷婷综合在线| 亚洲AV色图一区| 欧美高清无码免费视频高清版| 亚洲高清91| 天天做天天爱| 超碰在线日韩一区| 尤物一级在线免费观看| 久草精品一区 | 97ai亚洲| 久久婷婷五月综合| 国产品精品自在在线午夜免费| 激情久久久| 亚洲精品一二三四区| 97日韩欧美亚洲| 亚洲91在线播放影院| 大香蕉宗合网在线| 蜜臀99久久国产| 男人的天堂2019AV| 中日亚韩免费视频| 欧洲亚洲人人爽爽视频| 人妻一区视频| 色777999综合| 久久中文色图| 国产日韩精品无码去免费专区国产| 99自拍B亚洲 | 老熟女91| 观看免费区二区三区二| 国产日韩精品无码去免费专区国产| 骚女高跟AV在线| 久热婷婷| 亚洲av影音先锋| 加勒比性爱成人在线| 制度丝袜99| 超碰 欧美| 女优视频第10页| 国产传媒午夜理伦精品| 欧美爆操91| 亚洲二区精品在线观看| 麻豆视频国产一区二区| 97欧美色| 素人播放一区| 99久久99久久免费精品蜜臀| 亚洲爱爱视频一区二区| 婷婷性爱| 淫荡少妇免费| 国产激情视频一区区三区| 欧美日不卡| 26uuu国产成人综合| 亚洲动态色图| 九九操久久国产免费视频| 婷婷操逼| 成人午夜高潮av猛片| 欧美线天码中字| 九久久九精品视频| 亚洲午夜AV| 日韩无码黄色片| 毛片一区二区| 久久久久久999| 97青青操视频| 嗯嗯嗯啊啊啊操的我好爽| 丁香九月 婷婷| 国产蜜臀精品一区二区尤物| 啊啊啊啊啊啊啊啊啊在线观看| 成人欧美一区二区三区黑人一| 国产精品96| 天堂av最新电影网| 国产久久久久影院老熟女| 91久久99久久91熟女精品| 免费久久一级毛片大黄| 丁香六月婷婷久久综合| 成 人 A V免费视频在线观看| 激情五月天色色| 日韩综合色图| 99rre在线精品99re8| 五月天色色网站| 国产操逼视频在线观看| 无遮挡男女激烈动态图| 天天综合,91入口| 国产美女激情| 天堂蜜桃无码视频一区二区| 26uuu性| av网站国产主播在线| 亚洲高清欧美总合| 熟妇人妻丰满久久久久久久无码| 日韩综合第八区国产精品| 亚洲和欧美裸体美女双飞视频| 青青草视频这里只有精品| 日本黄 R色 成 人网站| 国产精品探花色| 国产激情视频一区区三区| 不卡日本一区二区| 天堂性色| 大JI巴好深好爽又大又粗视频| 国产精品97视频| 九九九九九九精品| AV色女综合| 欧美综色欧| 国产农村妇女毛片精品久久| 网友自拍第一页| 1204人成网站色www| 五毛骚逼极品美女怕怕| 天天影视亚洲| 超碰无码加勒比| 日本天天操| 国产最火爆久久国产网站网站| 四虎午夜影院| 思思视频免费看网站| A片大香蕉在线| 国产无码精品无码| 99久久精品国产高潮| 色色99| 天天影视综合网欧美精品| 欧美制服另类丝袜| 久久久草成人网站久久久草成人久久久草久久久 | 亚洲欧洲偷拍一区| 亚洲精品欧洲精品| 97综合在线观看| 97色论| 伦在线97| 亚洲天天综合| 日韩一区二区三区四区五区| 日韩AV一区二区三区四四| 用力操死我| 91/欧美| 97综合久第一页| 日韩97在线| 国产隔壁老王影院在线| 翘臀vidoes| AV丝袜少妇| 男插女青青影院| 亚洲欧美视| 久草午夜| 欧美三级中文字幕hd| 色色五月婷| 国产精品91ai| 亚洲天堂加勒比| 亚洲码在线中文在线观看| 插穴性爱视频在线观看| 女人爽到高潮久久久| 久久视频少妇美女| 免费看黄片现成| 婷婷久久大香蕉| 日本不卡三级网在线播放| 熟妇国产免费一区| 91网九色蝌蚪操熟女| 免费在线黄片视频| 天天综合网91入口| 暴力av在线| 最新日日夜夜天天干干| 熟妇熟女视频一区二区三区| 亚洲交换| 欧美性色综合网| 91深夜夜| 中文字幕少妇色 | 色综合久久888| 福利一级版子| 在线αⅴ| 色妹子A V| 91熟女视频网| 夜夜嗨一区二区| 97色欧州| 激情小说在线视频| 五月丁香影视| 色97欧美| 翔田千里爆乳巨臀无码| 一区二区三区高清 | 在线看片国产精品每日更新| 97色诱| 色欲av国内精品久久久久久| 亚洲第一在线视频| 暴力av在线| 国产剧情AV不卡在线观看| 神马久久网| 91综合网| 日韩影片中文字幕一区二区三区| 大香蕉久久| 99操逼| 偷拍亚洲情色| 久操大香蕉| 神马久久久久久久久| 亚洲成熟国产精品美女| 久久久久久中文| 岛国艾薇凹凸视频天堂| 91n处女在线观看| 久/久精品99看9| 青青草依人大香蕉| 日产狠狠干| 91丝袜在线播放| 久久久一区二区三区四曲免费听| 一区二区中文| 欧美72网页| 性久久久| 日韩专区久久久| 亚洲激情四射| 亚洲精品久久久久毛片A片拉屎| 性一交一乱一交A片久久四色| 欧美第五页| 超碰97男人| 日本久久超碰| 精品无码久久久| 无码人妻精品酒店| 亚洲精品欧洲精品| 美国一区二区免费视频| 成人精品电影| 黄色免费一级在线毛片| 国产一| 性饥渴少妇av无码毛片| 乱久久久| 日产狠狠干| 被操高清无码视频| 屁股久久久久久久久| 最新日产中文在线麻豆| 一区二区高清视频| 91欧美另类| 中文字幕在线观看永久| 久久偷拍人| 无码乱人伦中文视频| 97这里有精品| 日本999精品| 日本亚洲熟女视频| 国产91亚洲精品一区二区三区| 2017大香蕉国产精品久久| 人妻系列无码专区中文有码 | 91精品黄在线观看| 91性色| 国产美女口爆吞精| 一区二区 韩日AV| 婷婷色色五月天福利| 超碰97久久国| 人人手机欧洲亚洲国产人妻| 精品成人av一区二区三区在线| 97碰| 色欧美色交综合| 爱爱动态120秒| 国产福利小视频高清在线观看| 天天射日日干| 日韩在线观看AV| 午夜欧美J进J出白浆流出久久久| 深田咏美亚洲精品福利社| 五月丁香六月综合缴清无码| 久久久女人| 欧美色图成人网一区二区| 国产精品色色| 亚洲中文字幕在现观看| 2020中文字幕在线观看| 久久久久久久久久久精| 9精品在线| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 久久人| 色五月AV在线| 国产亚洲日本| 男人天堂久久日韩| 性性欧美| 美女让帅哥通她小鸡鸡| 欧美一二在线| 欧美色图片91| 亚洲天堂自拍| 久久9精品视频| 一区二区三区精品黑丝白丝酒店对鸡| 欧美人人AAA| 啪一啪免费视频| 中文字幕人成乱码熟女香港| 欧美极品美女aaaaaa级黄片| 青娱乐淫乱1314| 青青草狠狠撸| 日日嗨AV一区二区夜夜| 伊人 俄罗斯 a v| 少妇与黑人高潮在线| 综合网天天| 日韩欧美午夜一区二区| 美国日韩黄片| 蜜桃av色偷偷av老熟女| 亚洲学生妹高清av| 久久综合九色综合欧洲98| 欧洲综合色图| 好属操| 久久粉色| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 九九干| 国产高清成人mv在线观看| 91色人妻| 操逼大黄片| 91人妻最真实刺激绿帽| 久久首页| 国产精品制服丝袜清纯唯美| 国产乱伦性爱AV| 国产精品久久久鸭无码的功能| 入口操逼网站| 少妇超碰在线| 大香蕉99热| 欧美国产有色电影| 国产精品久久久久999| 91精品少妇搡搡搡| 国产人妻久久精品一区二区三区| 中文字幕后石码四区五区| a级免费在线观看| 秋霞怕怕片| 变态乱伦伪娘灌肠一区二区| 风流老熟女一区二区三区l| 日本一区二区不卡精品| 五月天伊人| 射丝袜高跟鞋99| 欧美日韩亚洲五月天婷婷| 骚女高跟AV在线| 亚洲中文sv| 日本熟妇浓毛hdsex| 日本一区二区三区午夜观看| 亚洲 欧美 手机在线观看| 婷婷五月av| 天天看综合网| 国产视频小说| 欧美天天弄| 日韩亚洲精品一区二区| 国内精品久久久久影院亚洲| 色狠狠综合噜一二三区| 91中文字幕在线观看| 欧美资源| www…国产操逼| 日本淫色网| 精品中文一区二区| 成年人网站在线免费观看| 凹凸视频在线观看伊人| 97超碰碰碰| 婷婷五月天无码 | 热99这里有精品综合久久 | 影音综合网| 日本免费一区二区不卡| 蜜臀无码视频在线观看| 九月婷婷久久| AV99热18这里只有精品| 亚洲欧美小说| 天天日天天插| 久久精品中文字幕女同| 久久国产在线一区二区| 亚洲天堂性爱| 台湾佬中文娱乐自偷自拍| 欧美天堂第二区| 综合欧美亚洲| 欧美色图天堂在线| 人妻人久久精品中文字幕| 亚洲人成网站7777| 思思热在线观看| 长久操视频| 亚洲AV麻豆Aⅴ无码电影一| 啊v视频在线观看| 91五月天| 久久久久久久久久久免费精品| 丁香六月综合激情| 九九九不卡| 国产亚洲精品美女久久久m| 亚洲另类久操网| 人妻喷水| 青娱乐日韩无码| 亚av顶级裸体一区二区三区四区五区| 欧美岛国精品在线观看| 精人妻无码一区二区三区伊人直播| 变态综合色| 一级性爱aaaa| 男人天堂最新手机版在线青青草| 亚洲最新中文字幕免费| 吉川爱美亚洲二区在线| 日本黄大片在线观看视频| 69超碰综合| 美女黄页网站| 青青草日韩无码| 99999国产| 色综合九九| 青青青草伊人精品| 国产精品久久久久久久黄无码| 成人日本精品九区| 精品日韩人妻视频| AV丝袜东京热| 欧美成人一级免费电影| 超碰日韩美妻| 99精品久久| 在线天堂资源亚洲| 五月婷婷激情| 亚洲无码偷拍| 欧美A√综合网 | 亚洲综合中文字幕有码| 老鸭窝在线视频播放| 国产亚洲精品第一最新| 天天干嫩逼网| 第45页一区二区| A级毛片在线看免费| 丝袜综合| 欧美系列在线一区二区| 婷婷20月天青娱乐| 91xingse| 久久久亚洲高清不打码| 综合大香蕉美。| 97av在线视频| 色吧 综合| 欧美78| 久久久久国产精品喷潮免费观看臀| 大干人妻| 粉嫩国产精品久久粉嫩| 国产亚洲日韩欧| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 午夜毛片亚洲精品片国产久久久| 色第一页| A 天堂在线观看视频| 久久久久女教师免费一区 | 国产精品久久久久av| 精品人妻一区二区三区视频在线| 麻豆AV一区二区| 亚洲一级特黄大片在线播放91| 深夜激情 | 欧美制服另类丝袜| 黄片色区软件| 中英熟女操女| 久操av在线| 熟女日韩| 无码少妇精品一区二区60岁老人| 97爱爱爱| 啊啊在线| 国产高清不卡视频| 99热这里只有精品99| 天天射天天| 97亚洲综合在线| 日本大香蕉| 天天爽天天爽| 夜间福利片1000无码| 亚洲 在线| 青青草国产一区二区三区| 亚洲欧洲小说图片视频| 成人国产精品三级A片| 视频一区二区免费在线| 欧美专区17页| 91/欧美| 国产视频三区四区| 日本99热| 成人日本视频人妻在线| 九九精品无码专区免费| 91成人无码| 日本精品九九九| 天天爽夜夜欢视| 五月天色综合| 91动漫操逼视频| 国内偷自视频区视频综合| 性91| 中文久久久| 懂色av中文字幕| 今日头条成人一区二区三区四虎精品| 亚洲色人妻综合| 大香网伊人久久综合| 成人麻豆av电影网站| 97香蕉网| 午夜成人爽爽爽爽A片李冰冰| 天天久久久久久| 加勒比海成人视频网 | 97久久精品亚洲| 中国探花熟女| 大伊香蕉在线视频免费| 青椒国产97在线熟女| 亚洲欧洲中文日韩女优乱码| 国产91影院| 91丝袜在线观看| 欧美偷拍| 78超碰| 国产9l 大屁股| 久久有码视频| 欧美性暴力猛交| 91日韩网站| 精品无码久久| 免费国产视频| 2017av无码免费无线播| 91福利网在线观看| 日熟女| 国模私拍一区二区三区神乳| 一级二级三级黑人无码| 天天操夜夜操狠很操| 免费一级黄色录像影片| 激情综合二| 日本国产欧美高清在线| 尤物国产一区在线观看| 色人久久| 超碰人人乐97| 欧洲亚洲人妻无码中字久久三区四区| 久久久久久久久久久999| 亚洲一二三| 国产蜜臀在线| 中文字幕成人乱码熟女精品国50| 精品少妇999| 人妻偷拍一区二区三区| 国产区91柔拿会所技师| 中文激情网| 人妻夜夜爽天天爽麻豆三区网站 | 亚洲 日韩 欧美 国产综合体| 国产欧美伊人| WWW.加勒比人妻一区不卡.com| 嫩草美女久久| 欧美日韩国产三级黄色| 黑丝日韩av丝袜av| 好屌色综合| 劲爆欧美人妖三区91| 亚洲综合草草| 国产熟妇 码视频户外直播| 大香蕉免费3| 超碰人妻天天干| 国产精品免费视频不卡| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | www.91理论| 日韩一级免费性爱| 亚洲综合97中文网| 亚洲的天堂网| JuliaAnn丝袜熟女系列| 亚洲无码国产精品久久| 婷色五月| 中文字幕久久精品一区| 91天美免费| av一区二区三区不卡| 91爆操视频| 久久久999日本大片| 天天天天天超碰| 男女啊啊啊啊啊| 日韩无码操逼片| 久久久久久人妻| 亚洲熟妇熟在线电影视频| 久超碰这里只有精品| 亚洲欧美色图小说| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 少妇 综合| 操淫穴亚洲五月丁香| 九色黄站| 精品国产肉丝袜在线拍国语| 97天天操天天干| 蜜臀Av一区二区三区| 日日操免费视频| 五月丁香啪啪啪| 偷拍2020| 豆花视频操逼网址 | 亚洲无码免费看| 天天操女人| 天天影视综合色| 亚洲熟女性高潮久久久| 午夜精品99久久久久传媒| nuu12国产麻豆精品| 成人免费看吃奶视频网站| 欧美 亚洲 综合 制服| 国产中午字一暮区| 欧美成人四级在线播放| 青青草视频久久久久| 97干在线视频| 丁香六月婷婷综合| 色综合 加勒比| 嗯啊视频免费在线观看| 超碰 av 女人天堂| 国产精品麻豆成人av| 久操大香蕉手机视频在线看| 欧美日韩小说| 婷婷色中文字幕| 国产精品高朝久久久久久久| 99热99在线播放激情| 日韩欧美丝袜诱惑| 国产精品4p在线观看| 久久综合日韩亚洲欧美| 性色AV网站| 国产suv精品一区二区四| 婷婷爽人人婷婷爽视频| 啊…啊…操我用力操我| 久久久久99999| 男人天堂2019亚洲| 91操熟女| 成人网欧美风情| 国产成人超碰在线| 成人日韩中文字幕| 少妇啪啪自拍| 久久熟女久| 熟女精品va中文字幕| 青木玲在线不卡| 中日韩欧美精品无码AⅤ一区二区| 中文字幕人乱码中文字的预防方法 | 91人妻尻屄视频| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | aⅴ日韩成人电影av在线免费看av大全 | 亚洲欧美精品一区天堂久久 | 97视频在线免费观看| 97精品一二区| 伊人一区二区在线播放| 日韩精品电影| 97久久久| 成人小说另类在线| 激情人妻另类| 色色色五月婷婷| 91人人| 欧美色图中文字幕| 亚洲色 国产 欧美 日韩| 欧美女同在线| 老女人爆菊| 久久无码成人| 日日躁天天躁狠狠躁| 亚洲天天艹| 国产成人综合在线播放| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 韩国一区二区精品亚洲| 久久综合国产精品国产| 人妻激情视频| 97干色天堂| 亚洲日韩成人性爱视频| 亚洲图片激情小说| 狠狠做深爱婷婷久久二区| 91日本在线观看| 国产毛片片精品天天看视频| 国产一区二区精品在线视频| baisiav| 亚洲最新av无码成人精品区| 亚洲色人阁| 亚洲男人天堂2013| 野狼激情网| 成人八戒网站| 天天澡天天狠天天天做| 亚洲AV不卡在线观看| 人人喜人人妻| 黄片不用下载在线观看| 国产欧美日本亚洲精品| 色路综合| 操淫穴亚洲五月丁香 | 色色福利| 国产成人拍国产亚洲精品| 久久精品成人| 97一本大道亚洲一区| 欧美性特| 免费看日产一区二区三区| 久久精品 六十路 熟女 欧美| 天天射天天色成人| 欧美论理片| 91女神在线视频| 狠狠色婷婷7777久| 大香蕉免费乱伦视频| 日韩欧美大片免费高清啪啪| 久久这里只| 男人的天堂日韩| 欲色影视综合吧| 色九九九九久| 九九色婷婷| 亚洲成熟国产精品美女| se吧提供国产乱老熟视频胖女人| 97欧美在线| 成人青青草原伊人| 97chaopenrihan| 久久精品夜色国产亚洲AV| 综合国产97| 日韩国语字幕| 色播丁香| www.夜夜操| 丁香婷婷九月| 日亚韩精品视频二区三| 亚洲欧美在线观看免费| AV和黑人在线播放| 欧洲亚洲国产综合在线| 亚洲中字幕日本一区二区三区| 久草这里只有精品| 欧美综合网A| 加勒比aⅴ| 一本色道人妻久久| 欧美 色 亚洲| 极品色综合| 久久精品国产亚洲av水密被窝| 密臀国产在线| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 超碰成人最新最好看| 无码av永久免费专区网站| 亚洲成人在线高清| 另类小说综合网| 自拍偷拍亚洲熟女妇人精品| 精品成人无码| 性爱边摸边日免费AV| 乱伦图一区| 可以在线观看AV的网站| 国产精品自拍欧美在线| 插欧洲美女欧美精品| 思思热免费视频观看| 不卡啪啪视频| 夜夜爽77777| 不卡超碰护士AV在线免费播放| 国产极品999| 绯色AV粉色AV蜜臀AV| 色综和网| chaopen97久久| 人妻精品一区二区三区| 试看60秒 爽| 人人操人人摸avav| 中文字幕中文字幕一区二区| 天天躁日日躁AAA片李宗瑞| 婷婷色播婷婷| 偷拍 精品 另类 四区| 日韩成人午夜精品久久高潮| 麻豆国产成人精品| 久久99干一本高清| 久久大黄片| 中文字幕在线观看永久| 欧美一级黄片免费播放| 香蕉在线一区二区三区| 麻豆人妻少妇在线免费观看| 99999这里都精品| 欧洲亚洲人妻无码高清久久三区四区| 久操视频在线观看| 操操操日本的逼| 九九热在线视频| 99啪啪| 偷拍99| 欧美日韩午夜精品一区二区三区 | 福利视频网站| 日韩性爱人人爱人人操| av中文在线| 欧美后入视频| 亚洲 在线| 免费一级特黄特色大片在线观看看| 大香蕉综合| 国产男女无套97| 国产白丝网站| 久久九九视频九九视频| 欧美男女午夜啪啪| 人妻天天爽夜夜爽2| 国产精品爆乳懂色蜜乳| 在线观看综合精品亚洲| 第二页中文字幕| 欧美,日韩,中文,另类| 内射夫妻三片| 志村玲子视频一区二区| 曰韩少妇无码| 亚洲AV无码乱码| 五月天激情网图片| 视频黄站| 国产在线视频二区| 久久久艹艹艹| 99热这里都是精品| 可以在线观看AV的网站| 美女淫穴| 欧美性爱一区二区| 337p大胆噜噜噜噜噜91Av| 啊啊啊不要啊啊受不了了视频在线 | 美女骚尻视频| 性爱视频无打码在线观看| 大香蕉色十月| 快播久久人人aV| 中文字幕日韩人妻视频一区二区三区 | 91快色色色色色| 亚洲天堂自拍| 亚洲成人激情小说视频| 国产成人网| 香蕉国产97| 把腿张开老子CAO烂你| 97色视频在线| 国产精品一区二区a| 五月婷婷激情| 狠狠躁伊人中文字幕| 粉嫩av在线一区二区| 日本大香蕉| 日本操逼视频不卡直接放| 欧美精品成人亚洲| 99re免费| 欧美78p| 性猛交| 白嫩嫩一区| 天天拍夜夜| 天天操天天插| 日日摸天天爽夜夜欢| 国产玖玖| 中文一区二区三区影院| 久久大香蕉手机高清视频| 亚洲男人天堂av| 熟女丝袜视频| 日本孕妇一区二区视频操逼免费看 | 国产精品麻豆视频网站| 91综合国产精品| 国产精品嫩草影院免费| 国产后入内射| 亚洲无线码一区国产欧美国| 97 国产精品| 99亚洲天堂| 欧洲精品一级二级精品综合视频综合| 嗯嗯啊在线视频| 国语av狠狠色丁香婷婷综合激情| 熟妇亚洲一区二区三区| 国产无码精品高清| 射丝袜大香蕉| 青青草天天亲夜夜操网| 亚洲男人的天堂va亚洲男人社| 熟女人妻久久中文字幕一二区| 色香综合| 精品十三区| 亚洲最新中文字幕免费| 亚洲天堂一区二区| 性爱动态120秒| 天天上日日上日韩精品| 国产极品久久久| 日本成人电影资源网| 97人人色| 天天干2019| 性爱免费视频成人| 情色五月天就去干| 中文字幕老熟妇黄色视频| 精品人妻一区二区三区四区石在线| 躁躁日曰躁2020| 老司机射| 青青草福利视频| 日本不卡二三区| 亚洲国产欧美中文永久| 国产97在线视频| 嗯嗯啊好大| 亚洲黄色影视| 欧洲黄色网| 国产AV天美传媒一区二区三区 | 亚洲。日韩。欧美| 乱伦Av网| 白丝AV| 久湿久久| ss久久| 成人性爱美曰韩| 亚洲色天| 国产精品久久久久久久久久二区三区| 涩涩五月天| 中文字幕亚洲永久精品| 2017天天插| 人妻无码久久一区二区三区免费| 妺妺跟我一起洗澡没忍住| 精品无码秘 人妻一区二区| 久久综合久色欧美综合狠狠| 久久久精品国产亚洲伊人| 国产h片在线观看视频| 97天天日| 亚洲综合另类色图| 91骚妇| 九九在线视频| 日韩探花精品在线视频| 激情文学88| 欧美日韩国产精品久久色婷婷| 亚洲AO在线| 欧美激情综合| 操我无码| 超碰免费人妻人人| 午夜九九九九九九| 97伦乱| 一牛一区二区三区久久| 91色艳| 亚洲图片欧美在线视频| 天天艹天天日| 欧美岛国精品在线观看| 自拍六区| 骚日日av| 欧美 亚洲 综合 制服 另类| 亚洲中文字幕乱码无码一区二区| 超碰成人免费| 秋霞曰韩R级| 高清成年美女黄网站免费大全 | 69精品| 97ai亚洲| 夜夜精品视频一区二区| 精品无码久久久久| 国产高清不卡视频| 美日韩一卡二卡三卡免费人妻精品| 九热视频| 女人爽到高潮潮喷18禁网站 | av黄图片在线观看| 干B网| 97在线播放| 97精品视频在线播放| 亚洲美女黄色| 啊啊啊啊好大好硬啊啊啊啊啊 | 超碰在线91| 99爱爱| 天美麻花大全视频| 欧美特大黄一级片片免费| 亚洲AV秘 精品久久老牛影视| 人妻献身系列第54部| 老熟女乱伦一区| 日韩激情电影中文字幕| 美女裸体无遮挡永久免费观看网站| 男人的天堂va在线| 伊人麻豆传媒| 欧美色图20p| 久久六六| 无遮挡又黄又刺激的视频| 成人免费性爱视视| 国产精品无码成人精品| 草草影院最新网址| 一起草日韩| 顶级丝袜熟女一区二区三区| 久久一级无码精品毛片6| 欧美日韩国产中文精品字幕自在自线 | 丰满少妇精品一区二区| 久草综合网| 2017天天插| 欧美色图综合| 午夜福利1区2区3区| 国产日韩精品人妻久久久久色欲网站| 日韩操逼HD| 国产精品探花在线| 97久久久| 999久久久久久久精| 亚洲 欧美 小说| 大香蕉色欲AV| 精品在线78| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 亚洲成人福利电影免费| 91精品久久综合熟女| 91碰碰| 日韩一级二级在线| 丝袜亚洲91| 久久久久女教师免费一区 | 天天射夜夜骑| 日韩偷拍一区二区三区| 日操粉逼逼| 日本超碰在线国产一区| 97久久精品国产| 亚洲97网站| 欧美色宗合| 日韩操逼HD| 亚洲五月婷| 中文字幕乱码人妻一区二区三区,99精品 | 久久无码电影| 日韩免费人妻色情网站| 色九九九综合| 欧美热图99| 综合国产影视三级| 丁香九月激情| 91久久久视| 国产精品伦理| 成人无码电影在线观看网| www.色操逼| 情色五月天久久久| 五月天精品| 伊人久久综合影院精品久久久 | 久久精品 六十路 熟女 欧美| 国产成人免费观看在线视频| 欧美制服另类丝袜| 欧美性Fer办公室秘书| 白嫩少妇| 国产成人无码久久精品| 99热导航| 999999精品| 成人网站 免费观看| 亚洲伊人久久精品狠狠在线| 大香交| 国产精品露脸在线观看| www.夜夜| 熟女91网| 偷拍亚洲熟女视频播放| 天天影视色香色欲| 夜夜春夜夜操| 欧美日本中字另类在线| 国产精品对白内射| 午夜欧美精品久久久| 国产无马视频| 综合网久久| 97色网| 久久丁香五月天| 久久宗合亚洲| 国产色综合亚洲色综合吹潮| 亚洲 综合 欧美| 精品视频一区二区| 顶级丝袜熟女一区二区三区| 婷婷五月天久久精品视频一区二区三区 | 中文字幕在在线观看网站| 性欧美91| 欧美很很操视频| 欧美大干日韩| 日韩乱伦AⅤ| av操操不卡| 97综合网| 97久精品| 精品视频一二三中文| 日韩婷婷| 国产精品另类| 国产18精品亚洲精品| 中文字幕乱偷人妻久久艾草网| 国产美女口爆吞精视频| 夜夜操天天肏| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 亚洲欧美在线综合| 飘花国产午夜精品不卡| 久插综合| 日本操逼视频不卡直接放| 青青草伊人久久| 中文字幕美女91| 国产污视频麻豆传媒一区二区| 色色毛片| 欧美综合色站| 成人性爱免费播放| 91精品人妻一区二区三区蜜桃臀| 福利视频合集| 91丝袜美腿网站| 欧美亚洲国产91在线| 久久久穴999| 亚川综合视频| 色综合99999| 欧美性巨大╳╳╳╳╳高跟鞋| 在线情色电影 91大 | 岛国精品视频在线观看| 欧日韩一二三f区| 激情婷婷丁香| 久久78| 亚州色站 日韩电影| 日本精品网站在线中文| 都市激情人妻一区二区青青操视频| 99精品欧美一区二区三区桃色| 人妻丝袜肏逼| 怡红院一区二区熟女人妻| 综合少妇网| 精品91摸| 国产Av超碰| 欧美偷偷网| 日日操天天操| 日本一区二区亚洲综合| 抽插爽| 日本一本道A级黄色毛片试看60分钟| 色欲久久99精品久久| 久久怡红院| AⅤ片水多多| 欧洲亚洲综合| 色色无码| 中文字幕高清精品一区| 噜噜噜亚洲精品| 色九月婷婷| 秋霞一级鲁丝片A片| 天美传媒av一区二区| 精品久久99| 日本人妻伦在线中文字幕| 日本免费一区二区不卡 | 淫荡少妇免费| 9久久久久久| 第四色亚洲色图| 亚洲一本色道中文无码aV天美| 97网色| 欧美综合制服在线| 天堂种子在线www网资源| 精品91日日夜夜超清资源| 69久久久久久久久久久久久| 91久久久久久| 91人妻精华帖| 亚洲天天更新| 久久草视频污视频| 91 在线亚洲| 福利视频一区二区微拍| 伊人操| 天天日熟妇| 久久精品一区| 婷婷五月天久久久| 国产黄色小视频网站| 亚洲少妇综合| 九九九影院| 内射白嫩美女| 操婷婷逼| 无码丰满熟妇一区二区浪潮AV| 国产精品久久久久久久久久久久久久| 伊人玖玖网| 中文字幕大片三级狠狠干| 欧美强奸乱| 久久天天艹| 精品黄色电影| 人人操超碰在线| 99只有精品| 淫色网综合| 五月丁香影院| 偷窥自拍A片| 熟女五十路一区二区三| 91天天| 国产精品乱码久久久| 天操天操夜操夜月操月年年操操| 久久蜜桃综合网| 日韩97超碰中文字幕| 亚洲欧洲网站免费观看| 黄色AAAAA欧美| a男人的天堂久久一级A毛片 | 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 亚洲精品久久久久久久蜜桃臀| 插B在线观看| 青青草无码视频| 新97国产超碰| 激情图片亚洲色图| 久操高青| 欧美少妇熟女| www.婷婷| 大香樵伊人网| 五月天成人综合| 久操精品网| 在线视频日韩欧美国产| 91人妻做a观看视频| 亚洲免费成人在线高清无码视频| 老司机午夜精品视频| 久久国产成人精品国产成人亚洲| 久久二| 色97干| 亚洲97超碰| 亚洲欧洲激情卡通另类文学四射小说网站 | 日韩ab网 | 伊人精品视频| 国产精品久久久777| 日日骚 av| 国产美女激情| 黑人与人妻| Aa东京男人的天堂| 欧美高潮| 啊啊啊啊,啊啊好多水| www久久精品| 色97欧美| 久夜视频| 国产精品又黄又猛又粗| 欧美精品久久久久久久丰满| 少妇一区二区三区精选| 日本一级婬片试看三分钟| 国产精品视频麻豆入口| 色综合av男人天堂| 中文字幕性感少妇av| 激情婷婷| 欧美中文字幕男人天堂久久精品 | 殴美性色a级欧美| 蜜桃中文字日产乱幕4区| A啊啊在线观看| 日韩中文9| 性欧美999| 青草综合| 看免费的黄片| 日韩人成网站在线播放| 国产免费一区在线观看| 天天干嫩逼网| wuyechaopeng| 久久久亚洲精品中文字幕人妻| 手机在线大香蕉| 国产一级高清免费观看| 亚洲密乳AV| 午夜欧美女人操逼| 色婷五月天| 99青青草国产视频| 欧美日韩国产色五月综合在线| 91色欧美| 精品人妻一区二区三区四区石在线 | 九九九精品一区二区无码| 舔人妻中文免费视频| 91精片| av绯色| 久久久爆乳翘臀一线天伦理视频| 69综合网| 狠狠躁久久躁| 秋霞Av理论一级在线| 久久精品国产亚洲AV无码做| 五月天色五月| 91总综合网| 亚洲高清色综合| 国产精品亚洲天堂网址| 五月天开心网| 色欲色香天天天综合网www-亚洲综合国|