此書籍沒有詳細資訊。
還沒有人留下心得,快來搶頭香!
為您推薦
類似書籍推薦給您
【簡介】 語法學了就忘、程式書翻開就想睡…… ╰(▔皿▔╰) 快來體驗最適合大腦的學習方法 跳脫硬背語法這種痛苦又折磨的舊方法 圖像漫畫 + 情境式教學 + 互動練習 = 多感官的腦神經科學導向學習法 暢銷超過10年的經典新版,帶你一步步建立真正的程式思維 不只教你「怎麼寫」,還要合理、合規,而且真的「記得住」 ▌你適合這本書嗎? ? 完全初學,但不想被教科書式寫法勸退的人 ? 學過JavaScript,卻到處卡卡而心生放棄的人(喂喂!現在放棄,比賽就結束了吶!) ? 再也不想忍受枯燥,想要有點瘋、有點鬆,但內容超紮實的學習方式的你 ▌來看看這些大師級的推薦 「這本書以前所未有的方式釋放了JavaScript的威能!告別枯燥乏味的程式碼教材,迎接有趣又創新的教學方式,幫助你精通時下最熱門的程式語言!準備好徹底顛覆你學習JavaScript的方式!」 —— Doreen Lorenzo,德州大學奧斯汀分校/設計與創意科技學院 副院長 「Freeman和Robson是我見過最棒的老師,沒有人比他們更了解JavaScript。這是少數幾本我可以毫無保留推薦的軟體與計算相關書籍之一。」 ——David Gelernter,耶魯大學/電腦科學教授 「這本書清晰、引人入勝的對話風格,搭配淺顯易懂的範例、練習和讀者挑戰關卡,使其成為有學習動機的自學者不可或缺的工具。」 ——Josh Sharfman,Shalhevet高中/電腦科學教師 ▌這本書到底有什麼? 本書將帶你踏上全面探索現代JavaScript的旅程,涵蓋從核心語言基礎到當今最尖端的新功能。 我們會深入探討JavaScript型別的微妙之處,以及其函式無與倫比的靈活性。 你會學習如何熟練運用類別與物件,最終理解closure的概念。 你還會親自動手操作瀏覽器的DOM(document object model),以令人興奮的方式與JavaScript互動。 這本書讓你不只是閱讀,還有遊戲和解謎可玩、一起思考奧秘,並以前所未有的方式體驗JavaScript。 此外,你還會寫出大量的實際程式碼,讓你能開始打造屬於自己的應用程式。 ▌《深入淺出》系列為何如此與眾不同? 曾經讀過《深入淺出》系列的讀者一定知道,這本書充滿了專為大腦設計的視覺化風格,好玩、好讀又好吸收。 尚未看過的讀者也別擔心,翻開書就是讓你欲罷不能的沉浸式學習! 本書跳脫讓人眼睛酸澀又昏昏欲睡的技術文字,用圖像和情境打造多重感官的閱讀饗宴,帶你一口氣讀懂JavaScript。 學習原來可以這麼有趣又有感! 目錄 【簡介】 當你的大腦遇上JavaScript。此時此刻你正在努力學習,但你的腦袋卻幫了個倒忙,確保這些知識不會留下深刻印象。你的大腦想的是:「最好留些空間給更重要的事情,比如該躲避哪些野獸,或是全裸滑雪到底是不是個糟糕的主意」。那麼,要如何哄騙你的大腦,讓它以為學會JavaScript是攸關性命的大事呢? 這本書是為誰而寫的? 我們知道你在想什麼 後設認知(metacognition) 讓你的大腦屈服 讀我 技術審閱團隊 致謝 【1 淺嚐JavaScript:讓我們先踩踩水】 JavaScript賦予你超能力。JavaScript是Web真正的程式語言,可讓你在網頁中加入行為。有了JavaScript,你就可以接觸使用者、對感興趣的事件做出反應、從Web抓取資料用於你的網頁、在那些網頁中直接繪製圖形,還有更多其他功能,不再只有枯燥、無趣的靜態頁面。一旦你了解JavaScript,你就能為你的使用者創造嶄新的行為。 你也將成為搶手的人才。JavaScript不僅是最流行的程式語言之一,所有的現代瀏覽器都支援JavaScript,而且在瀏覽器以外的許多環境中也都有使用。稍後再詳述;現在,讓我們開始吧! JavaScript的運作方式 你要如何編寫JavaScript 如何將JavaScript放入你的頁面 JavaScript,你已經走了很長一段路... 如何撰寫一個述句(statement) 變數(variables)與值(values) 常數(constants),另一種變數 遠離那個鍵盤! 表達你自己 重複執行任務 while迴圈如何運作 使用JavaScript做決定 還有,當你需要做很多決定時 接觸使用者並與他們溝通 仔細檢視console.log 開啟主控台(console) 編寫一個實際的JavaScript應用程式 如何在我的頁面中加入程式碼?(讓我數數看有幾種方法!) 我們得把你們兩個分開 【2 撰寫真實程式碼:繼續深入】 你已經知道變數、型別、運算式...我們可以繼續往下說了。重點是,你已經知道了一些關於JavaScript的事情。事實上,你所知的已經足夠寫出一些真正的程式碼了。也就是可以做一些有趣的事情的程式碼、有人會想要使用的程式碼。你所欠缺的是編寫程式碼的真實經驗,而我們現在就要在此補救這一點。如何彌補?就是要一頭栽進去,用JavaScript寫個輕鬆好玩的小遊戲。雖然這目標很有野心,但我們會循序漸進地實現它。來吧,讓我們開始動手,如果你想藉此打造下一家新創公司,我們絕不會擋路,這些程式碼都是你的。 讓我們打造一個戰艦(Battleship)遊戲 首先是高階的設計 逐步解析虛擬程式碼(pseudocode) 哦,在我們繼續之前,別忘了HTML! 撰寫Simple Battleship的程式碼 現在我們來編寫遊戲邏輯 步驟1:設置迴圈,取得一些輸入 prompt的運作方式 步驟2:檢查使用者的猜測 添加命中偵測程式碼 步驟3:嘿,你擊沉了我的戰艦! 步驟4:提供一些賽後分析 做一點品質管控(quality assurance) 我們可以聊聊你那囉嗦的表達方式嗎... 完成Simple Battleship遊戲 產生隨機數字(random number)的步驟 恭喜你完成第一個真正的JavaScript程式,並簡短談談程式碼的重複使用 【3 函式介紹:邁向函式化之路】 為你的第一項超能力做好準備。你已經掌握了一些程式設計的技巧;現在是使用函式(functions)來真正推動事情發展的時候了。函式讓你可以寫出適用於各種不同情況的程式碼、可以一再重複使用的程式碼、更容易管理的程式碼、能夠進行抽象化並提供一個簡單名稱的程式碼,讓你可以忘記所有的複雜性,繼續處理重要的事情。你會發現函式不僅是你從指令稿寫手(scripter)轉型為程式設計師(programmer)的大門,也是JavaScript程式設計風格的關鍵。在本章中,我們將從最基本的知識開始,也就是函式的運轉機制,了解從內到外實際上是如何運作的,然後你將在本書其餘的章節中不斷磨練你的函式技巧。所以,現在就開始打好基礎吧! 這段程式碼到底有什麼問題? 對了,我們有碰巧提到「函式」嗎? 好吧,但它實際上是如何運作的? 你可以傳入什麼給函式? JavaScript是藉由值傳遞(pass-by-value)的 奇怪的函式 函式也能回傳東西 追蹤帶有return述句的函式 全域(global)變數和區域(local)變數 了解你區域和全域變數的範疇(scope) 故事還沒說完 別忘了宣告你的區域變數! 變數的短暫生命 【4 資料排排站:陣列登場】 JavaScript不只有數字、字串和Boolean值。到目前為止,你一直在使用原始型別(primitives,字串、數字和Boolean值,例如「Fido」、23和true)撰寫JavaScript程式碼。你可以使用原始型別做很多事情,但到了某個時候,你還是得處理更多的資料。比方說,購物車中的所有項目,或播放清單中的所有歌曲,或一組恆星及其視星等(apparent magnitude),或整個產品目錄。為此,你需要一點額外的火力。這類有序資料的首選型別是JavaScript的陣列(array),在本章中,我們將介紹如何將資料放入陣列、如何傳遞它,以及如何對其進行運算。在接下來的章節中,我們將探討其他幾種將資料結構化的方式,但讓我們先從陣列開始。 你能幫助Bubbles-R-Us泡泡公司嗎? 如何在JavaScript中表示多個值 陣列如何運作 那個陣列到底有多大? Phrase-O-Matic片語產生器 同時,回到Bubbles-R-Us... 如何迭代陣列 但等等,迭代陣列還有一種更好的方法 又到了這個時候...我們能談談你囉嗦的表達方式嗎? 使用後置遞增運算子(post-increment operator)重製for迴圈 從頭建立陣列(並為之添加東西) 勝出的是... 快速瀏覽一下程式碼 撰寫printAndGetHighScore函式 使用printAndGetHighScore重構(refactor)程式碼 全部整合在一起 【5 了解物件:物件村之旅】 到目前為止,你一直在你的程式碼中使用原始型別和陣列。而且你以相當程序化(procedural)的方式進行程式碼編寫,使用簡單的述句、條件式、for/while迴圈搭配函式,但這並不完全是物件導向(objectoriented)的。事實上,這根本不算物件導向!你確實在不知不覺中用了一些物件,但你自己還沒有寫出任何的物件。現在是時候離開這無聊的程序城,創造一些你自己的物件(objects)了。在本章中,你會發現為什麼使用物件會讓你的生活變得非常美好──嗯,至少是在程式設計的層面上變得美好(我們真的無法在一本書中幫你同時提升時尚品味和JavaScript技能)。事前警告:一旦你發現了物件的好,你就再也回不去了。當你抵達那裡時,請寄張明信片給我們。 有人說了「物件」嗎? 思考特性(properties)... 如何建立物件 到底什麼是「物件導向」? 特性如何運作 變數如何存放物件?好奇的人想知道... 比較原始型別值(primitives)與物件 使用物件做到更多事 這輛計程車符合資格嗎? 讓我們再談談如何將物件傳給函式 Auto-O-Matic 乖乖聽話!或者說,如何為你的物件添加行為(behavior) 改善drive方法 呃,等等,別那麼快... 為什麼drive方法不知道started特性? 「this」如何運作 方法簡寫(method shorthand) 行為如何影響狀態(state) 現在讓我們用狀態影響行為 恭喜你完成第一個物件! 知道嗎?你身邊到處都是物件! 【6 與網頁互動:認識DOM】 你在JavaScript方面已經有了長足的進步。事實上,你已經從新手進化為指令稿寫手,再進化為程式設計師(programmer)了。但是,還缺少一些東西。要真正開始運用JavaScript技能,你需要知道如何與你程式碼所在的網頁互動。只有做到這一點,你才能編寫出動態(dynamic)的頁面,這些頁面在載入之後會做出反應、進行回應和自我更新。那麼你要如何與網頁互動呢?使用DOM,也就是文件物件模型(document object model)。在本章中,我們將分解DOM,並示範如何以JavaScript使用它,教會你的網頁一些新的花招。 在上一章中,我們留給你一個小小的挑戰... 所以這段程式碼在做什麼? JavaScript實際上是如何與你頁面互動的 如何製作你自己的DOM 初嚐DOM 使用getElementById獲取元素 我究竟從DOM得到了什麼? 尋找你內在的HTML 更改DOM時會發生什麼事 在頁面完全載入之前,別想執行我的程式碼! 你說「事件處理器(event handler)」,我說「回呼(callback)」 為何要停在這?讓我們更進一步... 如何使用setAttribute設定屬性(attribute) 屬性的更多樂趣! 言歸正傳,回到太陽系... 那麼DOM還有什麼用呢? 【7 型別、相等性、轉換,以及那些有的沒的:認真的型別】 是時候認真對待我們的型別了。JavaScript的一大優點在於,你能在不了解大量語言細節的情況下,做到很多事情。但是,若要真正掌握這門語言,獲得升遷,並去追求你在人生中真正想做的事情,就必須精通型別(types)。還記得我們在第1章是怎麼說JavaScript的嗎?它可沒有那種含著銀湯匙出生、經過學術界同儕審查的語言定義。是沒錯,但缺乏學術背景並沒有阻止Steve Jobs和Bill Gates成就事業,也阻止不了JavaScript。這確實意謂著JavaScript並沒有...嗯,最經過深思熟慮的型別系統,而我們也會在過程中發現一些特異之處。不過別擔心,在本章中我們會把那些問題都解決,很快你就能避免在型別上的那些尷尬時刻了。 真相就在那裡... 小心,你可能意外碰到undefined... 如何使用null 處理NaN 變得更奇怪了... 我們要坦白一件事 了解相等性運算子(又稱為==) 相等性如何轉換其運算元 如何得到更嚴格的相等性 更多的型別轉換 如何判斷兩個物件是否相等 truthy就在眼前... JavaScript會將什麼視為falsey 字串的祕密生活 字串如何能夠同時像是原始型別值(primitive)和物件 範本字面值(template literals)如何運作 字串之特性與方法的五分鐘導覽 椅子爭奪戰 【8 全面整合:建造一個App】 繫好你的工具腰帶。也就是裝載你所有的程式編寫新技能、DOM知識,甚至還有一些HTML和CSS的工具腰帶。在本章中,我們要把所有東西都整合在一起,來建立我們第一個真正的Web應用程式(application)。不再是只有一艘戰艦和單一列藏身處的愚蠢玩具遊戲。在本章中,我們要建構整個體驗(experience):一個大而美觀的遊戲版面、多艘戰艦,以及直接在網頁上進行的使用者輸入。我們會使用HTML建立遊戲的頁面結構,使用CSS設定遊戲的視覺樣式,並撰寫JavaScript程式碼來控制遊戲的行為。準備好了嗎?這一章我們要全力衝刺,徹底放手一搏,在這裡寫下一些認真的程式碼。 這一次,讓我們建立一個真正的戰艦遊戲 退後一步...回到HTML和CSS 建立HTML頁面:整體全貌 新增一些樣式(style) 使用hit和miss類別 設計遊戲 實作視圖(view) 模型(model) 你需要一艘更大的船...和遊戲棋盤 我們要如何表示那些船艦 全都整合在一起 等等,我們能再談談你囉嗦的表達方式嗎? 擊殺的視圖... 實作控制器(controller) 處理玩家的猜測 取得玩家的猜測 如何放置船艦 避免碰撞! 恭喜,是時候創業了! 【9 處理事件:進入非同步世界】 翻開本章之後,你會發現自己就像綠野仙蹤的桃樂絲一樣,一轉眼已經不在堪薩斯(Kansas)了。到目前為止,你所寫的程式碼通常都是從上到下執行的──當然,你的程式碼可能會比較複雜一點,也會使用一些函式、物件和方法,但到了某個時間點,程式碼就只會按部就班地執行。很抱歉這麼晚才告訴你,其實JavaScript程式碼通常不是這樣寫的。取而代之,大多數的JavaScript都是為了對事件(events)做出反應而寫的。什麼樣的事件?比方說使用者點擊你的網頁、有資料透過網路抵達了、瀏覽器中的計時器到期、DOM中發生變化...等,這些只是少數幾個例子。事實上,在瀏覽器的幕後,一直都有各種事件在發生。在本章中,我們將重新思考JavaScript程式的編寫方式,並探討我們應該如何以及為何要寫出對事件做出反應的程式碼。 何謂事件? 何謂事件處理器(event handler)? 建立事件處理器 透過製作遊戲來了解事件... 實作遊戲 讓我們加入更多影像 如何為所有影像重複使用相同的處理器 事件物件(event object)如何運作 讓事件物件發揮作用 事件和佇列(queues) setTimeout如何運作 完成影像遊戲 【10 匿名函式與高階函式:解放函式】 掌握函式,所向披靡。每種技藝、工藝和學科都有一個關鍵原則,可以區分出中階玩家和頂尖高手──談到JavaScript時,差別在於對函式的真正了解。函式是JavaScript的基礎,我們用來設計和組織程式碼的許多技巧都取決於函式的進階知識和使用。通往這種層次函式應用的學習之路,既有趣又時常會讓人絞盡腦汁,所以準備好了嗎...接下來的兩章會有點像是威利.旺卡(Willy Wonka)的巧克力工廠冒險之旅──學習JavaScript函式更多知識的過程中,你會遇到一些瘋狂、古怪且奇妙的事情。 function關鍵字神祕的雙重身分 函式也是值 如果函式是值,我們就能把它們指定給變數 我們有提到函式在JavaScript中擁有 一等公民(first class)的地位嗎? 看看函式的另一面... 如何使用匿名函式(anonymous function) 我們得再談談你的囉嗦程度 我們可以使用箭號函式(arrow functions)讓程式碼更簡短 建立箭號函式 Webville Cola 了解陣列的sort方法 全部整合在一起 同時,回到Webville Cola 介紹高階函式(higher-order functions) 使用高階函式進行過濾 別忘了你的匿名和箭號函式 使用reduce得到總銷售箱數 鏈串map、filter和reduce 以forEach進行迭代 【11 現代語法、語彙範疇與closure:函式真功夫】 你已經征服了函式,但還有更多要學習的。本章將更進一步,我們要認真了。我們將教你如何運用處理引數(arguments)、參數(parameters)和指定(assignments)的進階技巧來提升你的語法技能。接著,我們會再看看範疇(scope),以及JavaScript如何管理範疇的一些細節。這段探索範疇奧妙之處的旅程,將帶領我們進入closure(閉包)的核心──這個概念經常蒙上神祕的面紗,但卻是精通JavaScript的關鍵。到頭來,你會發現自己運用JavaScript表達的能力,超乎你原先的想像。 認真研究函式語法 分散你的引數 關於函式有些事情我們還沒告訴你... 函式宣告會被「拉升(hoisted)」 我們已經完成函式宣告,現在要做的是其他的事情 我們需要談談範疇 讓函式超越全域範疇 溫習語彙範疇(lexical scope) 再次看看我們的外層(outer)和內層(inner)函式 使用範疇進行封裝(encapsulation) 兩條重要的JavaScript範疇規則 解開謎團 如何製作一個closure 使用closure實作魔法計數器(magic counter) 揭開神祕面紗... 使用closure實作計數器 makeTimer的運作方式 實作onlyOnceMaker 【12 進階的物件建構:創造物件】 到目前為止,我們一直在手工製作物件。對於所有的物件,我們都使用物件字面值(object literal)來指定每一個特性。小規模進行的話,這沒啥問題,但對於認真的程式碼,我們需要更好的東西。這就是類別(classes)的用武之地。藉由類別,我們可以更輕鬆地創建物件,而且我們可以建立出遵循相同設計藍圖(design blueprint)的物件,也就是說,我們可以使用類別來確保每個物件都有相同的特性,並包含相同的方法。而有了類別之後,我們就能寫出更簡潔的物件程式碼,而且在建立大量物件時,更不容易出錯。那麼,讓我們開始吧... 使用物件字面值建立物件 使用物件的慣例 介紹類別 如何定義類別 如何從類別建立出物件 類別的運作方式 讓我們加入一些方法 生產的時間到了! 基本的Car類別 使用extends實作Taxi類別 新增方法到Taxi類別 實作RocketCar類別 使用物件字面值來整理我們的建構器 改造Car建構器 存取器(accessor)特性 使用取值器(getter) 若無設值器(setter),取值器又有何用? 靜態特性和方法 計算我們的車子產量 【A 漏網之魚:十大遺珠之憾(我們沒講到的主題)】 我們已經涵蓋了很多內容,而你幾乎快讀完這本書了。我們會想念你的,但在讓你離開之前,如果沒有更多一點的準備工作,我們不放心把你送到外面的世界。我們不可能在這相對較小型的一章中包含你會需要知道的一切。事實上,我們原本確實放入了所有你需要知道的JavaScript程式設計知識(其他章節尚未提及的),方法是將字體縮小到0.00004。雖然全部都寫進去了,但是沒人有辦法讀。所以我們丟掉了大部分的內容,將最好的部分保留在這個「十大」附錄中。 #1 模組(modules) #2 JSON #3 Promise(承諾) #4 解構指定(destructuring assignment) #5 Symbol(符號)和BigInt(大整數) #6 Map(映射)與Set(集合) #7 使用DOM執行更多操作 #8 window物件 #9 伺服端(server-side)JavaScript #10 遞迴(recursion)
類似書籍推薦給您
【簡介】 最推薦入手的Python入門第一本書! 真正「看得懂、寫得出、用得上」! 有趣,而且有效!從「感覺會了」到「真的會了」 現在靠工具、靠直覺就能Vibe出一些成果,但真正理解Python,讓你寫得更順、改得更快、做得更完整。 延續《深入淺出》系列一貫風格 圖像漫畫+幽默對話講解+大量實作練習,透過多感官引導的學習,讓你自然吸收關鍵觀念與語法運作邏輯。 實境學會駕馭程式、解決問題,而不只是死背語法 結合生活化案例與小專案,從基礎語法到問題拆解,帶你養成真正的程式思維,讓每一步都懂「為什麼」,而不是「剛好可以」。 寫給現在就想開始、也想走得更遠的你 適合零基礎、跨領域學習者,也適合已經在Vibe、但想讓成果變得更穩建更專業的創作者與工作者。 為你拓展你的可能性 AI、資料分析、自動化、Web開發、……等,用Python讓你大展身手,實現所有的可能。 『《深入淺出 Python》提供了一種引人入勝的學習體驗,感覺就像一位友好及知識淵博的導師親自指導你。這本書在娛樂性和資訊性內容之間達到了完美的平衡,使學習Python變得有趣且有效。』 —William Jamir Silva(威廉·賈米爾·席爾瓦),Anaconda軟體工程師 『這本書讓我們得以用一種有趣的方式來學習Python程式設計,所使用的開發工具與我同事日常使用的一樣。書中包含了一系列逐步加深的挑戰,讓我解決了一些在一開始無法應付的問題。書中對於"Pythonic"程式設計風格的介紹非常難得,且對讀者來說具有很高的價值,強調了「不止一種方法可以解決問題」。』 —Dave Marsden(戴夫·馬斯登), CTS雲端架構師 『《深入淺出 Python》不僅提供你基礎知識,還剔除了所有不必要的冗餘內容。讓你在開發真實應用程式時,還能享受有趣的故事,同時建立Jupyter notebooks,並在網路上部署可行的應用程式。如果Python在你的待學清單上,那就從這本書開始吧!』 —Daniel Hinojosa, 開發者/教師/演講者 『這是進入強大程式語言Python的絕佳起點,帶你踏上一段教育性和引人入勝的旅程,從概念到實際的網頁應用程式』 —Michael Hopkins(邁克爾·霍普金斯), P.Geo.(專業地質學家)/PMP(專案管理專業人士) ■ 你將從這本書中學到什麼? 想要學習Python程式語言,但不想硬啃使用手冊嗎?透過這本《深入淺出 Python》,讓你能快速掌握Python的基礎知識,包括使用內建的資料結構和函式;然後建立自己的網頁應用程式(webapp),並在雲端上部署。你將學習到如何用Python處理資料、從網路抓取資料、使用pandas做資料分析、與資料庫互動。《深入淺出 Python》第三版是一個完整的學習體驗,能幫助你在短時間內成為一名合格的Python工程師。 ■ 本書為何如此與眾不同? 曾經讀過《深入淺出》系列的讀者一定知道,這本書充滿了專為大腦設計的視覺化風格,好玩、好讀又好吸收;尚未看過的讀者也別擔心,翻開書就是讓你欲罷不能的沉浸式學習!本書跳脫讓人眼睛酸澀又昏昏欲睡的技術文字,用圖像和情境打造多重感官的閱讀饗宴,帶你一口氣讀懂Python。學習原來可以這麼有趣又有感! 【目錄】 【0 為什麼選擇 Python?:相似但不同】 Python 從零開始計數,這聽起來應該很熟悉。事實上,Python 與其他程式語言有很多共同之處。有變數、迴圈、條件判斷、函式...等。在這本書的開篇章節中,我們將為你進行 Python 基礎知識的高層次快速導覽,在不深入細節的情況下介紹該語言。你將瞭解如何使用 Jupyter Notebook (在 VS Code 中執行) 來建立和執行程式碼。你會發現很多程式設計功能都已內建於 Python 中,你可以利用這些功能來完成工作。你還將瞭解到,儘管 Python 與其他程式語言有許多相似之處,但它們在 Python 程式碼中的呈現方式可能會有所不同。然而,別誤會:這種不同是好的,而不是壞的。請繼續閱讀以瞭解更多... 要開始執行程式碼了 準備你的第一次 Jupyter 體驗 讓我們在你的筆記本編輯器中鍵入一些程式碼 按下 Shift + Enter 以執行你的程式碼 如果你想要更多張牌呢? 讓我們研究一下抽牌的程式碼 四大類型:清單、元組、字典和集合 使用集合來模擬一副撲克牌 print dir 混搭 求助於 dir 的輸出 將撲克牌填入集合 現在感覺就像是一副撲克牌了 「card」究竟是什麼呢? 需要找什麼嗎? 讓我們停下來並做個整理 Python 內建了一個內容豐富的標準程式庫 使用 Python,你只需撰寫你需要的程式碼 就在你以為你已經完成的時候... 【1 深入探索:讓我們大展拳腳】 學習新語言的最好方法就是編寫一些程式碼。 如果你打算編寫一些程式碼,你將需要一個實際的問題。幸運的是,我們就有一個這樣的問題。在本章中,你將開始你的 Python 應用程式開發之旅,與我們的好鄰居游泳教練一起大展拳腳。你將從 Python 字串開始,學習如何根據自己的需求操控它們,同時以基於 Python 的解決方案來逐步解決游泳教練的問題。你還將更深入地瞭解 Python 內建的清單資料結構,學習變數的工作原理,並學習如何閱讀 Python 的錯誤訊息,而不至於陷入困境,同時以實際的 Python 程式碼解決實際的問題。讓我們一起深入探索 (積極投入)... 教練目前的情況如何? 教練需要一只功能更強大的碼錶 辦公室閒聊 檔案和試算表是「相關聯的」 我們的第一個任務:提取檔名中的資料 字串是一個具有屬性的物件 從檔名中提取游泳選手的資料 不要試圖猜測一個方法的作用... 分割 (也稱為拆分) 字串 還有一些工作要做 閱讀錯誤訊息時,從下往上閱讀會比較好瞭解 當你在組合方法調用時要小心 讓我們嘗試另一個字串方法 剩下的就是建立一些變數 任務 #1 已完成! 任務 #2:處理檔案中的資料 【2 數字清單:處理清單資料】 你寫的程式碼越多,你的水準就會越好。就是這麼簡單。在本章中,你將繼續建立 Python 程式碼來協助教練。你將學習如何從教練提供的資料檔案中讀取資料,將其逐列載入到一個清單中,這是 Python 中最強大的內建資料結構之一。除了從檔案的資料來建立清單外,你還將學習如何從頭開始建立清單,並根據需要動態擴展清單。你將使用Python 最受歡迎的迴圈結構之一 ── for 迴圈 ── 來處理清單。你將把值從一種資料格式轉換為另一種資料格式,你甚至會交上一個新的好朋友 (你自己的 Python BFF)。你已經喝足了咖啡並吃飽了派,所以是時候捲起袖子,回到工作中了。 任務 #2:處理檔案中的資料 取得教練的資料副本 使用 open BIF 處理檔案 使用 with 開啟 (和關閉) 檔案 變數會根據需要動態建立 你真正想要的是檔案的資料 我們從檔案中取得了游泳選手的資料 接下來需要做的事情感覺很熟悉 上一章的學習正在帶來回報 將時間字串轉換為時間值 使用 Python 進行百分之一秒轉換 Python for 迴圈快速回顧 戰火升溫... for 迴圈與 while 迴圈的較量 你現在進展順利並取得了很大的進步! 讓我們保留一份轉換的副本 列出你的清單的方法 是時候計算平均值了 將平均值轉換為游泳時間字串 是時候把所有東西整合在一起了 任務 #2 終於完成了! 【3 檔案清單:函式、模組和檔案】 你的程式碼不可能永遠待在筆記本中。它想要自由。當涉及到釋放和共享你的程式碼時,量身定製的函式是第一步,隨後是模組,它讓你得以組織和分享你的程式碼。在本章中,你將直接從迄今為止所編寫的程式碼來建立一個函式,並在此過程中建立一個可共享的模組。當你以 for 迴圈、if 陳述式、條件測試和 Python 標準程式庫 (Python Standard Library 或 PSL) 來處理教練的游泳資料時,你將立即用到模組。你還將學習如何為你的函式添加註解 (這總是一個好主意) 。還有很多工作要做,所以讓我們開始吧! 你已經擁有大部分需要用到的程式碼 如何在 Python 中建立函式 根據需要隨時保存你的程式碼 僅僅複製程式碼是不夠的 務必複製你需要用到的所有程式碼 使用模組來共享程式碼 盡情享受回傳資料所帶來的喜悅 函式會在需要時回傳元組 讓我們來取得教練的檔案名稱清單 是時候進行一些偵探工作了... 你可以對清單做些什麼? 問題出在你的資料還是程式碼? 決定,決定,還是決定 讓我們在字串「中」尋找冒號 你最終處理了 60 個檔案嗎? 教練的程式碼正在成形... 資料結構,即 dataframe (資料框),以便在你下次處理一塊表格式資料時,能夠有效地利用它。 房間裡的是大象...還說牠是一隻大貓熊? pandas 如何建立「字典中包含字典」結構? 從遵循慣例開始 pandas 資料框清單 從資料框中選取欄位 將資料框轉換為字典,嘗試 #1 從資料框中刪除不需要的資料 反轉你的 pandas 條件運算式 將資料框轉換為字典,嘗試 #2 將資料框轉換為字典,嘗試 #3 這是另一個字典中包含字典的結構 將 gazpacho 與 pandas 進行比較 這只是對 pandas 程式庫可能性的一瞥... 【10 資料庫:井然有序】 遲早,你會需要對應用程式的資料進行管理。當你需要更適當地管理 (manage) 資料時,僅使用 Python 可能不夠。在這種情況下,你需要使用你偏愛的資料庫 (database) 引擎。為了讓事情?嗯?更容易管理,我們將選擇支援老舊但可靠之 SQL 的資料庫引擎。在本章中,你不僅會建立 (create) 一個資料庫並添加一些資料表 (tables),還會使用由你的 Python 程式碼安排的 SQL 查詢來進行資料庫的插入 (insert)、選擇 (select) 和刪除 (delete) 等操作。 已經聯繫教練... 提前規劃會帶來好處... 任務 #1:決定你的資料庫結構 紙巾結構 + 資料 從 PyPI 安裝 DBcm 模組 開始使用 DBcm 和 SQLite1 DBcm 與「with」陳述式配合使用 使用三引號字串來撰寫你的 SQL 並非所有的 SQL 都會傳回結果 你的資料表已經準備好了 (任務 #1 已完成) 確定游泳選手檔案清單 任務 #2:將資料添加到資料庫的資料表 使用 Python 的 SQL 占位符以確保安全 讓我們針對比賽項目重複這個過程 只剩你的 times 資料表了... 這些時間記錄在游泳選手的檔案中... 資料庫更新工具,1/2 資料庫更新工具,2/2 任務 #2 (終於) 完成了 【11 清單推導式:資料庫整合】 資料庫的資料表已準備就緒,該是整合的時候了。你的 webapp 可以透過使用資料庫 (database) 的資料表 (tables) 中的資料集 (datasets) 來獲得教練所需要的彈性,在本章中,你將建立一個工具程式 (utilities) 模組,讓你的 webapp 可以利用你的資料庫引擎。而且,在追求「用更少程式碼做更多事情」之永無止境的探索中,你將學習如何閱讀和編寫清單推導式 (list comprehensions),這是一種真正的 Python 超能力。你還將以新的有趣方式重複使用許多現有的程式碼,所以讓我們開始吧。還有很多整合工作要做。 讓我們在一個新的筆記本中探索 queries 模組 五列的迴圈程式碼變成一列 非雙底線項目的混搭做法 完成了一項查詢,還剩三項... 完成了兩項查詢,還剩下兩項... 最後一項,但並非最不重要的 (查詢)... 資料庫工具程式碼,1/2 資料庫工具程式碼,2/2 資料庫整合的工作即將開始 該整合你的資料
類似書籍推薦給您
【簡介】 包含.NET MAUI & Unity 本書介紹C#、.NET和Visual Studio的視覺化,內容包括開發遊戲、應用程式、3D內容製作,適合初學者學習,並為進入軟體開發職業提供基礎。 使用這個引人入勝、高度視覺化的C#、.NET和Visual Studio的介紹來創建應用程式和遊戲。第一章將直接深入了解,使用C#和.NET MAUI建立一個可以在Windows、Mac、甚至Android或iOS 裝置上運行且功能齊全的遊戲。將學習如何使用類別和物件導向程式設計、在Unity中建立3D遊戲以及使用LINQ查詢資料。您將透過解決難題、進行實踐練習和建立實際應用程式來完成這一切。對發展職業感興趣嗎?您將學習重要的開發技術和想法。許多透過本書學習編碼的人現在都是專業開發人員、團隊領導、程式設計串流頻道主等等。除了學習的慾望之外,不需要任何經驗。這本書就是最好的起點。 你將從本書學到什麼? 透過這本充滿視覺效果、令人沉醉其中的C#、.NET、軟體開發書籍來學習設計app、遊戲及其他軟體。你將瞭解如何運用類別、物件導向設計、Unity及LINQ的查詢資料來設計3D遊戲,並透過解開謎題、完成習題、撰寫實際的應用程式來完成以上的所有任務。渴望投入開發工作嗎?你將學會重要的開發技術和靈感,如同那些已經從這本書學會撰寫程式的許多專業開發者、團隊領導人、程式寫作主播一樣。你需要的只是一顆渴望學習的心,不需要具備任何經驗。這就是你的最佳起點。 • 瞭解類別和物件之間的關係,並基於這個知識,建構成功的App。 • 在前面幾章就開始建構令人滿意且有趣的專案。 本書為何如此與眾不同? 曾經讀過《深入淺出》系列的讀者一定知道,這本書充滿了專為大腦設計的視覺化風格,好玩、好讀又好吸收;尚未看過的讀者也別擔心,翻開書就是讓你欲罷不能的沉浸式學習!本書跳脫讓人眼睛酸澀又昏昏欲睡的技術文字,用圖像和情境打造多重感官的閱讀饗宴,帶你一口氣讀懂C#。學習原來可以這麼有趣又有感! 好評推薦 「太感謝你了!你的書讓我的職涯平步青雲。」—Ryan White,遊戲開發者 「在一片枯燥的技術手冊汪洋中,深入淺出C#如同一座耀眼的燈塔,它獨特的教學風格不僅傳授必備知識,還引起讀者的好奇心,點燃設計程式的熱情。這是一本初學者不可或缺的資源!」—Gerald Versluis,微軟資深軟體工程師 「Andrew與 Jennifer寫出一本簡明、權威、(最重要的)有趣的C#開發介紹書籍。—Jon Galloway,微軟.NET社群團隊資深程式經理【目錄】 1 開始用C#來建構app:快速打造出色的作品! 2 變數、陳述式,與方法:鑽研C#程式碼 Unity實驗室#1:用Unity來探索C# 3 名稱空間與類別:組織你的程式碼 4 資料、型態、物件,與參考:管理app的資料 Unity實驗室#2:為Unity撰寫C#程式 5 封裝:物件如何保守祕密 6 繼承:物件的族譜 Unity實驗室#3:GameObject實例 7 介面、轉型與「is」:讓類別信守它們的承諾 8 列舉與集合:整理你的資料 Unity實驗室#4:使用者介面 9 LINQ 與 lambda:控制你的資料 10 讀取與寫入檔案:幫我儲存最後一個byte ! Unity實驗室#5:Raycasting(射線投射) 11 神奇隊長:物件之死 12 例外處理:沒人喜歡疲於奔命 Unity實驗室#6:場景導航
類似書籍推薦給您
【簡介】 ►剖析 DeepSeek 核心架構與 MLA 注意力模組 ►系統講解 MoE 混合專家模型的設計與調度 ►建構完整的 PyTorch 多模態開發環境 ►從基礎到進階掌握自注意力與位置編碼原理 ►實作自回歸架構下的文字生成與情感分類 ►探討 GQA、MQA、差分注意力等調優策略 ►整合 API 調用與應用場景中的任務鏈設計 ►部署本地多模態模型並實作 LoRA 微調 ►實戰多模態圖文問答與交叉注意力語音轉換 ►實現 Token 壓縮與特徵融合技術於影像識別 ►使用 VQ-VAE 與 FSQ 進行影像與語音重建 ►完整開發跨平台智慧客服應用與 UI 前端整合 本書重點在於多模態大模型 DeepSeek 的核心技術架構,深入解析其高效注意力機制(如MLA、MQA、GQA)與混合專家模型(MoE)在實際應用中的設計與優化策略。內容涵蓋從PyTorch環境建置、API串接到LoRA/PEFT微調等多個開發環節,並透過情感分類、語音辨識、圖文問答、影像生成等跨模態實例,具體展示各模組在不同任務中的運行特性與效能差異。書中對於特徵融合策略、位置編碼設計、token壓縮方法等議題也有細緻探討,尤其在調優章節中,對各類注意力變種模型的適用條件與實作瓶頸提供實證分析。對於希望深入理解高性能Transformer架構、多模態任務建模及部署流程的開發者與研究者而言,本書可作為技術參考與實作指南。 【目錄】 ▌第1 章 高性能注意力與多模態融合 1.1 從湧現到飛躍:高性能大模型的崛起 1.1.1 大模型的「湧現」 1.1.2 大模型的發展歷程 1.1.3 高性能大模型的崛起 1.2 大模型的內功:高性能注意力機制的崛起 1.2.1 注意力機制的基本原理 1.2.2 注意力機制的變革與發展 1.2.3 高性能注意力機制崛起:GQA 與MLA 1.3 大模型的外拓:多模態融合 1.3.1 多模態外拓及其挑戰 1.3.2 融合策略與技術概覽 1.3.3 深度學習在多模態融合中的應用場景 1.4 高性能注意力與多模態融合的未來展望 1.4.1 融合技術的創新方向 1.4.2 注意力機制的前端探索 1.5 本章小結 ▌第2 章 PyTorch 深度學習環境架設 2.1 安裝Python 開發環境 2.1.1 Miniconda 的下載與安裝 2.1.2 PyCharm 的下載與安裝 2.1.3 計算softmax 函式練習 2.2 安裝PyTorch 2.0 2.2.1 NVIDIA 10/20/30/40 系列顯示卡選擇的GPU 版本 2.2.2 PyTorch 2.0 GPU NVIDIA 執行函式庫的安裝 2.2.3 Hello PyTorch 2.3 多模態大模型DeepSeek 初探與使用 2.3.1 DeepSeek 模型簡介 2.3.2 DeepSeek 帶來的技術創新 2.3.3 DeepSeek 的第三方服務與使用範例 2.4 本章小結 ▌第3 章 注意力機制詳解之基礎篇 3.1 注意力機制與模型詳解 3.1.1 注意力機制詳解 3.1.2 自注意力(Self-Attention)機制 3.1.3 自注意力的程式實現 3.1.4 ticks 和Layer Normalization 3.1.5 多頭自注意力 3.2 注意力機制的應用實踐:編碼器 3.2.1 自編碼器的整體架構 3.2.2 回到輸入層:初始詞向量層和位置編碼器層 3.2.3 前饋層的實現 3.2.4 將多層模組融合的TransformerBlock 層 3.2.5 編碼器的實現 3.3 基礎篇實戰:自編碼架構的拼音中文字生成模型 3.3.1 中文字拼音資料集處理 3.3.2 架設文字與向量的橋樑—Embedding 3.3.3 自編碼模型的確定 3.3.4 模型訓練部分的撰寫 3.4 本章小結 ▌第4 章 注意力機制詳解之進階篇 4.1 注意力機制的第二種形態:自迴歸架構 4.1.1 自迴歸架構重大突破:旋轉位置編碼 4.1.2 增加旋轉位置編碼的注意力機制與現有函式庫套件的實現 4.1.3 新型的啟動函式SwiGLU 詳解 4.1.4 「因果遮罩」與「錯位」輸入輸出格式詳解 4.2 進階篇實戰1:無須位置表示的飯店評論情感判斷 4.2.1 資料集的準備與讀取 4.2.2 使用sentencepiece 建立文字詞彙表 4.2.3 編碼情感分類資料集 4.2.4 基於新架構文字分類模型設計 4.2.5 情感分類模型的訓練與驗證 4.3 進階篇實戰2:基於自迴歸模型的飯店評論生成 4.3.1 資料集的準備與讀取 4.3.2 基於自迴歸文字生成模型的設計 4.3.3 評論生成模型的訓練 4.3.4 使用訓練好的模型生成評論 4.4 本章小結 ▌第5 章 注意力機制詳解之高級篇 5.1 替代前饋層的混合專家模型詳解 5.1.1 混合專家模型的基本結構 5.1.2 混合專家模型中的「專家」與「調控」程式實現 5.2 高級篇實戰1:基於混合專家模型的情感分類實戰 5.2.1 基於混合專家模型的MoE 評論情感分類實戰 5.2.2 混合專家模型中負載平衡的實現 5.2.3 修正後的MoE 門控函式 5.3 帶有MoE 的注意力模型 5.3.1 注意力機制中的前饋層不足 5.3.2 MoE 天然可作為前饋層 5.3.3 結合MoE 的注意力機制 5.4 高級篇實戰2:基於通道注意力的影像分類 5.4.1 資料集的準備 5.4.2 影像辨識模型的設計 5.4.3 結合通道注意力圖像分類模型 5.4.4 影像辨識模型SENet 的訓練與驗證 5.5 高級篇實戰3:基於MoE 與自注意力的影像分類 5.5.1 基於注意力機制的ViT 模型 5.5.2 Patch 和Position Embedding 5.5.3 視覺化的V-MoE 詳解 5.5.4 V-MoE 模型的實現 5.5.5 基於影像辨識模型V-MoE 的訓練與驗證 5.5.6 使用已有的函式庫套件實現MoE 5.6 本章小結 ▌第6 章 注意力機制詳解之調優篇 6.1 注意力模型最佳化方案講解 6.1.1 注意力模型最佳化1:MQA 模型 6.1.2 注意力模型最佳化2:MLA 模型 6.1.3 注意力模型最佳化3:GQA 模型 6.1.4 注意力模型最佳化4:差分注意力模型 6.2 調優篇實戰1:基於MLA 的人類語音情感分類 6.2.1 情緒資料的獲取與標籤的說明 6.2.2 情緒資料集的讀取 6.2.3 語音情感分類模型的設計和訓練 6.3 本章小結 ▌第7 章 旅遊特種兵迪士尼大作戰:DeepSeek API呼叫與高精準路徑最佳化 7.1 基於線上API 的大模型呼叫 7.1.1 DeepSeek 的註冊與API 獲取 7.1.2 帶有特定格式的DeepSeek 的API 呼叫 7.1.3 帶有約束的DeepSeek 的API 呼叫 7.2 智慧化DeepSeek 工具呼叫詳解 7.2.1 Python 使用工具的基本原理 7.2.2 在DeepSeek 中智慧地使用工具 7.2.3 在DeepSeek 中選擇性地使用工具 7.2.4 DeepSeek 工具呼叫判定依據 7.3 旅遊特種兵迪士尼大作戰:DeepSeek 高精準路徑最佳化 7.3.1 遊樂場資料的準備 7.3.2 普通大模型的迪士尼遊玩求解攻略 7.3.3 基於動態規劃演算法的迪士尼遊玩求解攻略 7.3.4 基於DeepSeek 的旅遊特種兵迪士尼大作戰 7.4 本章小結 ▌第8 章 廣告文案撰寫實戰:多模態DeepSeek 當地語系化部署與微調 8.1 多模態DeepSeek-VL2 當地語系化部署與使用 8.1.1 Linux 版本DeepSeek-VL2 程式下載與影像問答 8.1.2 Windows 版本DeepSeek-VL2 程式下載 8.2 廣告文案撰寫實戰1:PEFT 與LoRA 詳解 8.2.1 微調的目的:讓生成的結果更聚焦於任務目標 8.2.2 微調經典方法LoRA 詳解 8.2.3 調配DeepSeek 微調的輔助函式庫PEFT 詳解 8.3 廣告文案撰寫實戰2:當地語系化DeepSeek-VL2 微調 8.3.1 資料的準備 8.3.2 微調模型的訓練 8.3.3 微調模型的使用與推斷 8.4 本章小結 ▌第9 章 注意力與特徵融合範式1:Diffusion 可控影像生成 9.1 Diffusion 生成模型精講 9.1.1 Diffusion Model 的精講 9.1.2 直接執行的經典DDPM 的模型訓練實戰 9.1.3 DDPM 的模型基本模組說明 9.1.4 DDPM 加噪與去噪詳解:結合成功執行的擴散模型程式 9.1.5 DDPM 的損失函式:結合成功執行的Diffusion Model 程式 9.2 可控影像生成實戰:融合特徵的注意力機制 9.2.1 擴散模型可控生成的基礎:特徵融合 9.2.2 注意力MQA 中的可控特徵融合 9.2.3 基於注意力的擴散模型的設計 9.2.4 影像的加噪與模型訓練 9.2.5 基於注意力模型的可控影像生成 9.3 本章小結 ▌第10 章 注意力與特徵融合範式2:多模態圖文理解與問答 10.1 多模態圖文問答實戰 10.1.1 一種新的多模態融合方案 10.1.2 資料集的設計與使用 10.1.3 多模態融合資料集的訓練 10.1.4 多模態圖文問答的預測 10.2 更多的多模態融合方案 10.2.1 一種截斷的多模態融合方案 10.2.2 截斷後多模態模型的訓練與預測 10.2.3 一種加法基礎的多模態融合方案 10.3 本章小結 ▌第11 章 注意力與特徵融合範式3:交叉注意力語音轉換 11.1 點對點語音辨識任務簡介 11.1.1 點對點的語音辨識 11.1.2 中文語音文字資料集說明 11.2 點對點音訊特徵提取函式庫librosa 的使用 11.2.1 音訊訊號的基本讀取方法 11.2.2 多特徵音訊取出 11.3 點對點語音辨識任務簡介 11.3.1 全中文音訊資料集的準備 11.3.2 音訊特徵的提取與融合 11.3.3 基於生成模型的點對點語音辨識任務 11.3.4 點對點語音辨識任務的訓練與預測 11.4 基於PyTorch 的資料處理與音訊特徵融合 11.4.1 THCHS30 資料集的處理 11.4.2 基於torchaudio 的音訊前置處理 11.4.3 基於不同角度的音訊特徵獲取和簡單融合 11.4.4 關於特徵融合的講解 11.5 用於特徵融合的交叉注意力 11.5.1 交叉注意力詳解 11.5.2 帶有遮罩的交叉注意力 11.5.3 完整的帶有遮罩的交叉注意力點對點語音辨識 11.5.4 基於交叉注意力的點對點語音辨識的訓練與預測 11.5.5 基於連接concat 的點對點語音辨識模型 11.6 本章小結 ▌第12 章 多模態特徵token 壓縮 12.1 影像特徵壓縮的多種實現 12.1.1 Pixel-Shuffle 的token 壓縮 12.1.2 Cross-layer Token Fusion 壓縮 12.1.3 AvgPool 的token 壓縮 12.2 基於AvgPool 與自編碼器的語音辨識 12.2.1 修改後的AvgPool 函式 12.2.2 自編碼器語音辨識模型1:資料準備 12.2.3 自編碼器語音辨識模型2:模型設計 12.2.4 自編碼器語音辨識模型3:模型的訓練與預測 12.3 本章小結 ▌第13 章 從二維到一維:影像編碼器詳解與圖形重建實戰 13.1 影像編碼器 13.1.1 從自然語言處理講起 13.1.2 影像的編碼與解碼VQ-VAE 13.1.3 為什麼VQ-VAE 採用離散向量 13.1.4 VQ-VAE 的核心實現 13.2 基於VQ-VAE 的手寫體生成 13.2.1 影像的準備與超參數設置 13.2.2 VQ-VAE 的編碼器與解碼器 13.2.3 VQ-VAE 的模型設計 13.2.4 VQ-VAE 的訓練與預測 13.2.5 獲取編碼後的離散token 13.3 基於FSQ 的人臉生成 13.3.1 FSQ 演算法簡介與實現 13.3.2 人臉資料集的準備 13.3.3 基於FSQ 的人臉重建方案 13.3.4 基於FSQ 的人臉輸出與離散token 13.4 基於FSQ 演算法的語音儲存 13.4.1 無監督條件下的語音儲存 13.4.2 可作為密碼機的離散條件下的語音辨識 13.5 本章小結 ▌第14 章 基於PyTorch 的點對點視訊分類實戰 14.1 視訊分類資料集的準備 14.1.1 HMDB51 資料集的準備 14.1.2 視訊抽幀的處理 14.1.3 基於PyTorch 的資料登錄 14.2 注意力視訊分類實戰 14.2.1 對於視訊的Embedding 編碼器 14.2.2 視訊分類模型的設計 14.2.3 視訊分類模型的訓練與驗證 14.3 使用預訓練模型的視訊分類 14.3.1 torchvision 簡介 14.3.2 基於torchvision 的點對點視訊分類實戰 14.4 本章小結 ▌第15 章 基於DeepSeek 的跨平臺智慧客服開發實戰 15.1 智慧客服的設計與基本實現 15.1.1 智慧客服架設想法 15.1.2 商品介紹資料的格式與說明 15.1.3 基於DeepSeek 的智慧客服設計 15.2 帶有跨平臺使用者端的智慧客服開發實戰 15.2.1 跨平臺使用者端Gradio 使用詳解 15.2.2 一個簡單的Gradio 範例 15.2.3 基於DeepSeek 的跨平臺智慧客服實現 15.3 本章小結