置函數(shù)入門(mén):247個(gè)常用工具的原理與實(shí)戰(zhàn)避坑指南)
簡(jiǎn)介這是一份面向Python初學(xué)者與進(jìn)階開(kāi)發(fā)者的系統(tǒng)性學(xué)習(xí)指南聚焦內(nèi)置函數(shù)、核心語(yǔ)法與工程實(shí)踐幫助讀者告別枯燥理論60秒掌握一個(gè)實(shí)用技巧實(shí)現(xiàn)從入門(mén)到實(shí)戰(zhàn)能力的躍升。資源為單文件PDF共1個(gè)19.86MB的《Python之路V2.0.pdf》涵蓋247個(gè)精煉示例內(nèi)容橫跨Python基礎(chǔ)含abs/all/any/ascii等內(nèi)置函數(shù)詳解、字符串與正則、文件與日期操作、裝飾器/生成器/列表推導(dǎo)三大利器、pyecharts與Matplotlib繪圖及算法動(dòng)畫(huà)、Pandas數(shù)據(jù)透視、Scikit-learn機(jī)器學(xué)習(xí)建模、PyQt GUI開(kāi)發(fā)及Flask Web構(gòu)建等十大模塊。已有1813人學(xué)習(xí)下載結(jié)構(gòu)清晰、案例密集每個(gè)知識(shí)點(diǎn)均配可運(yùn)行代碼與效果說(shuō)明如一行交換變量、逆序序列生成、字典合并、KMeans聚類(lèi)創(chuàng)建、timeline輪播圖繪制等是兼顧深度、廣度與實(shí)操性的Python全棧學(xué)習(xí)手冊(cè)。1. Python內(nèi)置函數(shù)到底是什么——?jiǎng)e被“函數(shù)”倆字嚇住它其實(shí)是你寫(xiě)代碼時(shí)的“快捷鍵組合”你有沒(méi)有試過(guò)這樣想把兩個(gè)變量的值換一下結(jié)果寫(xiě)了三行代碼——先設(shè)個(gè)臨時(shí)變量再把a(bǔ)給它再把b給a最后把臨時(shí)變量給b……寫(xiě)完還盯著看兩遍生怕哪步搞反了。結(jié)果翻到別人代碼里就一行a, b b, a。你愣住這也能行這就是 Python 內(nèi)置函數(shù)和內(nèi)置語(yǔ)法在悄悄幫你省力。它不是什么高深莫測(cè)的黑匣子而是 Python 語(yǔ)言出廠自帶的一套「常用工具包」——就像新買(mǎi)的手機(jī)里預(yù)裝的計(jì)算器、備忘錄、天氣App不用下載、不用配置打開(kāi)就能用。abs(-5)算絕對(duì)值、len(hello)數(shù)字符個(gè)數(shù)、print(你好)把內(nèi)容甩到屏幕上……這些帶括號(hào)的小名字90%都是內(nèi)置函數(shù)。它們不依賴(lài)任何第三方庫(kù)Python 安裝好它們就立刻待命。這份《Python之路V2.0.pdf》最實(shí)在的地方就是沒(méi)讓你從“什么是解釋器”“什么是字節(jié)碼”開(kāi)始啃而是直接帶你摸到這247個(gè)真實(shí)可運(yùn)行的小開(kāi)關(guān)60秒一個(gè)例子不講虛的只教“怎么讓電腦聽(tīng)懂你一句話(huà)”。它適合誰(shuí)適合那個(gè)剛裝好Python、雙擊IDLE卻不知道該敲點(diǎn)啥的你適合被Excel公式繞暈、想用幾行代碼自動(dòng)處理100個(gè)表格的行政同事也適合學(xué)完語(yǔ)法但一寫(xiě)項(xiàng)目就卡在“不知道該調(diào)哪個(gè)函數(shù)”的轉(zhuǎn)行新人。它不承諾讓你三個(gè)月變架構(gòu)師但它保證你翻到第3頁(yè)就能寫(xiě)出比昨天更干凈、更少出錯(cuò)、自己看了都想夸一句“真順”的代碼。2. 為什么非得先啃透內(nèi)置函數(shù)——因?yàn)樗鼈兪悄愫蚉ython對(duì)話(huà)的“母語(yǔ)詞根”很多新手學(xué)Python一上來(lái)就急著沖向爬蟲(chóng)、畫(huà)圖、機(jī)器學(xué)習(xí)結(jié)果寫(xiě)個(gè)文件讀取卡在open()參數(shù)上調(diào)試報(bào)錯(cuò)看不懂TypeError: expected str, bytes or os.PathLike object, not int查半天才發(fā)現(xiàn)是把數(shù)字當(dāng)路徑傳進(jìn)去了。這不是你笨是跳過(guò)了最基礎(chǔ)的“詞匯量積累”。內(nèi)置函數(shù)就是Python的“母語(yǔ)詞根”——所有高級(jí)功能最終都由它們一層層搭起來(lái)。理解它們不是為了背誦而是建立一種直覺(jué)看到某個(gè)需求腦子里能自然彈出“哦這個(gè)應(yīng)該用filter()篩一下”或“這里用zip()配對(duì)更安全”。2.1 內(nèi)置函數(shù)不是“知識(shí)點(diǎn)”而是你每天寫(xiě)的每一行代碼的“默認(rèn)選項(xiàng)”想想你寫(xiě)過(guò)的代碼想知道列表里有沒(méi)有負(fù)數(shù)any(x 0 for x in numbers)——any()就是為此生的要把用戶(hù)輸入的字符串轉(zhuǎn)成數(shù)字計(jì)算int(input(請(qǐng)輸入數(shù)字))——int()是你和用戶(hù)之間最短的翻譯官處理一批數(shù)據(jù)發(fā)現(xiàn)有的是空字符串、有的是None想全過(guò)濾掉list(filter(None, data_list))——filter()連lambda都不用寫(xiě)None本身就能當(dāng)“真值判斷器”。這些不是冷知識(shí)是你明天寫(xiě)腳本時(shí)大概率會(huì)用上的“肌肉記憶”?!禤ython之路V2.0.pdf》把它們?nèi)幊闪诵±颖热绲?8個(gè)例子sorted()不止能排數(shù)字還能按字典里的某個(gè)鍵排序——students [{name: 張三, score: 85}, {name: 李四, score: 92}] sorted(students, keylambda x: x[score], reverseTrue) # 輸出[{name: 李四, score: 92}, {name: 張三, score: 85}]這段代碼背后sorted()是骨架key參數(shù)是關(guān)節(jié)lambda是靈活的手指。而sorted()本身就是Python給你預(yù)裝好的、最穩(wěn)當(dāng)?shù)呐判蛞?。你不需要造輪子只需要學(xué)會(huì)怎么掛載它。2.2 “三大利器”其實(shí)是內(nèi)置函數(shù)的“高階玩法”先站穩(wěn)才能跳遠(yuǎn)文檔目錄里提到的“Python三大利器”列表推導(dǎo)、裝飾器、生成器表面看是語(yǔ)法糖根子全扎在內(nèi)置函數(shù)里。列表推導(dǎo)[x*2 for x in range(5)]的本質(zhì)是map()和list()的簡(jiǎn)潔寫(xiě)法裝飾器staticmethod或property底層調(diào)用的是getattr()、setattr()這些操作對(duì)象屬性的內(nèi)置函數(shù)range(10)返回的不是列表而是一個(gè)“可迭代對(duì)象”它的每一次next()調(diào)用都依賴(lài)內(nèi)置的iter()和next()函數(shù)。所以當(dāng)你在第4章看到“三大利器”時(shí)不會(huì)覺(jué)得是憑空冒出來(lái)的新概念而是會(huì)心一笑“哦原來(lái)range()是iter()的親戚map()是list()的搭檔?!边@種連貫感正是從扎實(shí)掌握內(nèi)置函數(shù)開(kāi)始的。它讓你學(xué)得越深越覺(jué)得“原來(lái)如此”而不是“又來(lái)一個(gè)要背的”。2.3 避坑新手常踩的5個(gè)內(nèi)置函數(shù)“隱形坑”我第一次全中過(guò)提示以下問(wèn)題沒(méi)有一個(gè)是因?yàn)槟恪安粫?huì)”全是因文檔沒(méi)寫(xiě)清楚、教程一筆帶過(guò)導(dǎo)致的典型血淚經(jīng)驗(yàn)?,F(xiàn)象1input()輸入數(shù)字后報(bào)錯(cuò)TypeError: unsupported operand type(s) for : str and int→ 原因input()永遠(yuǎn)返回字符串哪怕你輸入的是123它也是123不是數(shù)字123。直接拿去加減乘除必然報(bào)錯(cuò)?!?解決養(yǎng)成習(xí)慣只要需要數(shù)值計(jì)算立刻套一層轉(zhuǎn)換age int(input(請(qǐng)輸入年齡))或price float(input(請(qǐng)輸入價(jià)格))。如果擔(dān)心用戶(hù)亂輸后面學(xué)異常處理再加try/except。現(xiàn)象2用all([1, 0, 3])判斷列表是否“全為真”結(jié)果返回False但你看0明明是數(shù)字啊→ 原因all()和any()判斷的是“真值truthy”不是“非零”。Python里0、空列表[]、空字典{}、None、空字符串都算“假值falsy”。0在這里代表“假”所以整個(gè)列表不滿(mǎn)足“全為真”。→ 解決明確意圖。如果真想檢查“是否所有元素都不等于0”寫(xiě)all(x ! 0 for x in my_list)如果只是想確認(rèn)列表非空且無(wú)空值用if my_list and all(my_list)更安全?,F(xiàn)象3dict()創(chuàng)建字典時(shí)用dict(a1, b2)成功但dict([(a,1), (b,2)])卻報(bào)錯(cuò)TypeError: dict expected at most 1 arguments, got 2→ 原因dict()有兩種調(diào)用方式dict(key1value1, key2value2)是關(guān)鍵字參數(shù)形式dict([(k1,v1), (k2,v2)])是傳入一個(gè)單個(gè)可迭代對(duì)象如列表。錯(cuò)誤寫(xiě)法是把兩個(gè)元組當(dāng)兩個(gè)參數(shù)傳了。→ 解決記住口訣——“關(guān)鍵字參數(shù)不用括號(hào)包序列參數(shù)必須用一個(gè)大括號(hào)/方括號(hào)包住”。正確寫(xiě)法dict([(a,1), (b,2)])或dict(zip([a,b], [1,2]))?,F(xiàn)象4round(2.675, 2)結(jié)果是2.67而不是2.68四舍五入“失靈”了→ 原因這是浮點(diǎn)數(shù)精度的全球性玄學(xué)并非Python獨(dú)有。2.675在計(jì)算機(jī)里無(wú)法被精確表示實(shí)際存儲(chǔ)值略小于2.675所以向下舍入。這不是bug是二進(jìn)制表示十進(jìn)制小數(shù)的固有局限?!?解決業(yè)務(wù)中要求嚴(yán)格四舍五入如財(cái)務(wù)計(jì)算改用decimal模塊from decimal import Decimal, ROUND_HALF_UP result Decimal(2.675).quantize(Decimal(0.01), roundingROUND_HALF_UP) # result 是 Decimal(2.68)現(xiàn)象5help(len)能看到幫助但help(my_list.append)卻提示No Python documentation found for built-in method append...→ 原因help()對(duì)內(nèi)置方法如列表的.append()、字符串的.split()支持有限它主要服務(wù)模塊、類(lèi)、函數(shù)等頂層對(duì)象。方法的幫助藏在所屬類(lèi)型里。→ 解決查方法幫助先查類(lèi)型help(list.append)或help(str.split)。更通用的方法是print(list.append.__doc__)它能直接打印原始文檔字符串。3. 第一步怎么邁——從“打印你的名字”開(kāi)始親手跑通第一個(gè)內(nèi)置函數(shù)例子別急著翻到247個(gè)例子的最后一頁(yè)。我們從最開(kāi)頭、最無(wú)腦、但最能建立信心的第1個(gè)例子開(kāi)始print()。它簡(jiǎn)單到像呼吸卻是你和Python世界說(shuō)的第一句話(huà)。跟著做三步保證成功。3.1 準(zhǔn)備工作確認(rèn)Python已就位5分鐘搞定你不需要下載任何額外軟件只需要確認(rèn)電腦上已經(jīng)安裝了Python。打開(kāi)你的終端Windows叫“命令提示符”或“PowerShell”Mac/Linux叫“終端”python --version如果屏幕顯示類(lèi)似Python 3.8.10或Python 3.11.2恭喜環(huán)境齊了如果提示python is not recognized說(shuō)明Python沒(méi)加到系統(tǒng)路徑去官網(wǎng)python.org下載安裝包務(wù)必勾選 “Add Python to PATH”這是唯一必須勾的選項(xiàng)重裝即可。裝完重啟終端再試。3.2 動(dòng)手用print()打印你的名字1分鐘在終端里直接輸入print(張三)把“張三”替換成你的真實(shí)姓名記得保留英文引號(hào)回車(chē)。屏幕上立刻出現(xiàn)張三? 成功這就是你人生第一個(gè)Python程序。它調(diào)用了內(nèi)置函數(shù)print()把引號(hào)里的文字原樣輸出。注意引號(hào)必須是英文的或中文引號(hào)“”會(huì)直接報(bào)錯(cuò)。3.3 升級(jí)用input()print()完成一次“人機(jī)對(duì)話(huà)”2分鐘現(xiàn)在讓程序更聰明一點(diǎn)讓它主動(dòng)問(wèn)你名字再打招呼name input(你好請(qǐng)輸入你的名字) print(歡迎你, name, )運(yùn)行效果你好請(qǐng)輸入你的名字李四 歡迎你 李四 這里發(fā)生了什么input(...)是另一個(gè)內(nèi)置函數(shù)它暫停程序等待你鍵盤(pán)輸入然后把輸入內(nèi)容作為字符串返回賦值給變量nameprint()接收多個(gè)參數(shù)用逗號(hào)隔開(kāi)自動(dòng)用空格連接并輸出。所以print(A, B)輸出A B。注意input()的提示文字必須用引號(hào)包住這是字符串而name是變量名不加引號(hào)否則它就真變成字面意思的“name”三個(gè)字母了。3.4 驗(yàn)證用type()和len()看看你輸入的東西到底是什么1分鐘剛才輸入的“李四”P(pán)ython把它當(dāng)什么存起來(lái)了加兩行驗(yàn)證name input(你好請(qǐng)輸入你的名字) print(歡迎你, name, ) print(你輸入的內(nèi)容類(lèi)型是, type(name)) print(你輸入的字符個(gè)數(shù)是, len(name))運(yùn)行后你會(huì)看到你好請(qǐng)輸入你的名字王小明 歡迎你 王小明 你輸入的內(nèi)容類(lèi)型是 class str 你輸入的字符個(gè)數(shù)是 3type(name)告訴你name是str字符串類(lèi)型印證了input()永遠(yuǎn)返回字符串len(name)計(jì)算字符串長(zhǎng)度中文、英文、數(shù)字每個(gè)字符都算1個(gè)。這兩個(gè)函數(shù)就是你未來(lái)排查問(wèn)題的“顯微鏡”和“卷尺”。4. 怎么把247個(gè)例子真正用起來(lái)——?jiǎng)e當(dāng)字典查要當(dāng)“樂(lè)高積木”搭很多人拿到《Python之路V2.0.pdf》第一反應(yīng)是“哇247個(gè)好全”然后收藏吃灰。原因很簡(jiǎn)單它不是一本按章節(jié)順序線(xiàn)性閱讀的教科書(shū)而是一份高度結(jié)構(gòu)化的、可即插即用的代碼樂(lè)高手冊(cè)。它的價(jià)值不在于你從頭讀到尾而在于你遇到具體問(wèn)題時(shí)能精準(zhǔn)找到那塊“剛好能拼上”的積木。4.1 按場(chǎng)景找例子把PDF當(dāng)“問(wèn)題解決索引”用假設(shè)你正在處理一份銷(xiāo)售數(shù)據(jù)Excel需要快速檢查數(shù)據(jù)里有沒(méi)有空值→ 直接翻到“一、Python基礎(chǔ)”里的any()和all()例子第2、3個(gè)套用if any(pd.isna(df[銷(xiāo)售額])): print(有空值)把日期列從字符串轉(zhuǎn)成標(biāo)準(zhǔn)日期格式→ 去“三、Python文件和日期”找datetime.strptime()示例雖然它不是內(nèi)置函數(shù)但strptime是datetime模塊的核心方法文檔里肯定有想把一堆商品名去重并按字母排序→ “一、Python基礎(chǔ)”第46個(gè)set()和第48個(gè)sorted()組合拳sorted(set(product_names))。你會(huì)發(fā)現(xiàn)文檔的十章目錄其實(shí)就是一張覆蓋日常開(kāi)發(fā)高頻場(chǎng)景的“問(wèn)題地圖”。你不需要記住所有247個(gè)只需要記住當(dāng)問(wèn)題出現(xiàn)就去對(duì)應(yīng)章節(jié)標(biāo)題下掃一眼小標(biāo)題。比如看到“六、Python之坑”就知道這里存著你未來(lái)調(diào)試時(shí)最可能需要的“后悔藥”。4.2 用“抄-改-創(chuàng)”三步法消化每個(gè)例子每個(gè)60秒小例子按這個(gè)節(jié)奏走抄把PDF里的代碼原封不動(dòng)復(fù)制到你的編輯器如VS Code、PyCharm或Python交互環(huán)境IDLE里運(yùn)行確保輸出和文檔一致改只改一個(gè)地方——比如把a(bǔ)bs(-6)改成abs(-100)把range(10)改成range(5, 15)觀察輸出變化。這一步強(qiáng)迫你理解每個(gè)參數(shù)的作用創(chuàng)用這個(gè)函數(shù)解決一個(gè)你自己的小問(wèn)題。例如學(xué)完max()和min()就寫(xiě)一行代碼找出你通訊錄里名字最長(zhǎng)的聯(lián)系人longest_name max(contacts, keylen)。只有當(dāng)你用自己的數(shù)據(jù)、自己的需求驅(qū)動(dòng)時(shí)知識(shí)才真正長(zhǎng)進(jìn)你的肌肉里。4.3 避坑別陷入“例題完美主義”先跑通再優(yōu)化新手最容易犯的錯(cuò)是看到一個(gè)例子就想把它“學(xué)到極致”。比如學(xué)format()字符串格式化第26個(gè)例子看到{:.2f}、{:.2f}、{:02d}一堆符號(hào)立刻想搞懂每一個(gè)冒號(hào)、點(diǎn)、尖括號(hào)的含義結(jié)果卡住半天?!?正確做法先用最簡(jiǎn)單的{}占位符跑通。比如name 小明 score 89.5 print(學(xué)生{}的分?jǐn)?shù)是{}.format(name, score)) # 輸出學(xué)生小明的分?jǐn)?shù)是89.5這已經(jīng)解決了90%的日常需求。等你哪天真需要“金額顯示兩位小數(shù)并帶千分位”再回來(lái)查{:,.2f}。把學(xué)習(xí)成本攤薄到每次只解決一個(gè)具體痛點(diǎn)而不是一次性吞下整本語(yǔ)法手冊(cè)。5. 下一步學(xué)什么——從“會(huì)用”到“敢改”用內(nèi)置函數(shù)重構(gòu)你的第一個(gè)小項(xiàng)目當(dāng)你已經(jīng)能熟練使用print(),input(),len(),type(),int(),str(),list(),dict(),sorted(),max(),min(),sum(),any(),all()這十幾個(gè)最常用的內(nèi)置函數(shù)并且能靠它們完成一些小任務(wù)比如批量重命名文件、統(tǒng)計(jì)文本詞頻、篩選Excel數(shù)據(jù)下一步就該升級(jí)了不再滿(mǎn)足于“調(diào)用”而是嘗試“改造”和“組合”。這才是從“入門(mén)”邁向“能干活”的關(guān)鍵躍遷。5.1 用內(nèi)置函數(shù)“手術(shù)刀”解剖一個(gè)真實(shí)小需求假設(shè)你有一個(gè)任務(wù)分析班級(jí)考試成績(jī)需要輸出平均分保留1位小數(shù)最高分和最低分及格人數(shù)60分所有不及格同學(xué)的名字假設(shè)數(shù)據(jù)是字典列表[{name:張三,score:85}, {name:李四,score:55}]不用任何第三方庫(kù)純用內(nèi)置函數(shù)可以這樣寫(xiě)# 假設(shè)這是你的原始數(shù)據(jù) scores_data [ {name: 張三, score: 85}, {name: 李四, score: 55}, {name: 王五, score: 92}, {name: 趙六, score: 48} ] # 1. 提取所有分?jǐn)?shù)用于計(jì)算 all_scores [s[score] for s in scores_data] # 列表推導(dǎo)本質(zhì)是 map() 的簡(jiǎn)化 # 2. 計(jì)算平均分sum len average round(sum(all_scores) / len(all_scores), 1) # 3. 找最高分、最低分 highest max(all_scores) lowest min(all_scores) # 4. 統(tǒng)計(jì)及格人數(shù)all() / any() 的兄弟sum() 生成器表達(dá)式 pass_count sum(1 for s in all_scores if s 60) # 5. 找不及格同學(xué)名字filter() 的等價(jià)寫(xiě)法 fail_names [s[name] for s in scores_data if s[score] 60] # 輸出結(jié)果 print(f平均分{average}) print(f最高分{highest}最低分{lowest}) print(f及格人數(shù){pass_count}) print(f不及格同學(xué){, .join(fail_names)})運(yùn)行結(jié)果平均分70.0 最高分92最低分48 及格人數(shù)2 不及格同學(xué)李四, 趙六這段代碼里沒(méi)有一行是“新知識(shí)”全是內(nèi)置函數(shù)的組合sum()、len()、max()、min()、列表推導(dǎo)[x for x in ...]、生成器表達(dá)式(x for x in ...)、join()字符串方法雖非內(nèi)置函數(shù)但同屬核心API。它證明了一件事把基礎(chǔ)工具用熟比學(xué)十個(gè)花哨的新庫(kù)更有力量。5.2 進(jìn)階路線(xiàn)圖內(nèi)置函數(shù)是地基后續(xù)每一步都踩在它上面階段核心目標(biāo)關(guān)鍵內(nèi)置函數(shù)/概念如何銜接《Python之路V2.0.pdf》鞏固期1-2周形成“條件反射”看到需求秒想函數(shù)len(),sum(),max()/min(),sorted(),any()/all(),filter()/map()重刷“一、Python基礎(chǔ)”全部90個(gè)例子重點(diǎn)練“改”和“創(chuàng)”步驟每天挑3個(gè)例子用自己數(shù)據(jù)跑一遍組合期2-4周用內(nèi)置函數(shù)基礎(chǔ)語(yǔ)法解決完整小任務(wù)列表推導(dǎo)、字典推導(dǎo)、zip()、enumerate()、reversed()進(jìn)入“四、Python三大利器”把“列表推導(dǎo)”“生成器”當(dāng)作內(nèi)置函數(shù)的“增強(qiáng)模式”來(lái)學(xué)對(duì)比list(map(...))和[x*2 for x in ...]的異同實(shí)戰(zhàn)期1個(gè)月在真實(shí)項(xiàng)目中自然調(diào)用不刻意想“該用哪個(gè)函數(shù)”open()文件、datetime時(shí)間、json.loads()數(shù)據(jù)解析“三、Python文件和日期”、“九、Python實(shí)戰(zhàn)”是主戰(zhàn)場(chǎng)。此時(shí)你會(huì)頻繁回翻“一、Python基礎(chǔ)”因?yàn)樗懈呒?jí)操作最終都分解為open()讀、for遍歷、if判斷、sum()統(tǒng)計(jì)這些動(dòng)作5.3 我的血淚教訓(xùn)從“抄代碼”到“寫(xiě)邏輯”中間只差一個(gè)print()調(diào)試習(xí)慣我第一次學(xué)Python時(shí)寫(xiě)一個(gè)排序算法邏輯總出錯(cuò)。當(dāng)時(shí)死磕sorted()的key參數(shù)卻忘了最樸素的辦法在關(guān)鍵步驟加print()。比如在循環(huán)里加一句print(f當(dāng)前i{i}, 當(dāng)前值{arr[i]})立刻就能看到程序到底在想什么。后來(lái)我才明白《Python之路V2.0.pdf》里那些看似簡(jiǎn)單的print()、type()、len()例子根本不是入門(mén)點(diǎn)綴而是你未來(lái)十年寫(xiě)代碼時(shí)最常用的“探針”。從那以后我每次寫(xiě)新邏輯不管多簡(jiǎn)單都強(qiáng)制走一遍先寫(xiě)一行print(debug: 進(jìn)入函數(shù))再在關(guān)鍵變量后加print(fdebug: var_name {var_name})。這讓我少花了至少一半時(shí)間在“猜哪里錯(cuò)了”上。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取