跳至主要内容

「為你自己學 Python」正式上架!

高見龍
五倍學院 負責人

為你自己學 Python

「為你自己學 Python」一書已經正式出版,書本裡的內容全文可在網站上免費閱讀,但如果您覺得拿在手上閱讀比較有感覺,現在在天瓏書局網站也能購買紙本書:

雖然我曾經寫過五、六年的 Python 程式,也曾在社群教過一陣子的 Python 課,但要提筆寫書又是不同的故事了。這本書從開始寫書到定稿,大概花了我一年多的時間,除了把以前上課的教材做了一次大大的整理,同時順便更新教材的軟體版本(當年還是 Python 2.x 的時代)。不只這樣,有些我當年自認為的觀念或看法,隨著年紀也有不同的領悟,也趁這個機會校正我自己對 Python 的理解。

這本書以 Python 3.12 做為主要教學版本,內容涵蓋環境安裝及 Python 程式語法,包括各種常用資料型態、邏輯及流程判斷、迴圈、錯誤處理、函數、模組、物件導向程式設計、檔案處理等,並透過網站爬蟲程式抓取並分析資料。沒有太多華麗的技巧,只有最基礎的程式觀念,期望能夠讓讀者在學習 Python 的過程中,建立穩固且正確的基礎。

在撰寫過程中,我除了翻閱官方文件以及 PEP(Python Enhancement Proposal)之外,有些我搞不清楚原理而且文件裡沒特別提到的設計,我就直接去翻 Python 的 C 語言原始碼來驗證自己的想法。新手自學程式容易被不完全正確觀念的影響而不自知,因此在這本書中我力求呈現正確且精準的觀念。我希望這不僅是一本程式自學參考書,也能引導各位讀者掌握 Python 正確的觀念,試著建立自己的「單一真相來源(Single Source of Truth)」。

不重要的布林值冷知識

高見龍
五倍學院 負責人

在 Python 裡的布林型態(bool)的 TrueFalse,有些網路上的教學會說它們可以被轉型成數字 1 跟 0。這樣的說法是沒問題,但可能比較少人知道在 Python 裡布林值其實就是一種數字。

Python 字串組裝的效能比較

高見龍
五倍學院 負責人

在 Python 要組出一個 "Hello World" 字串有好幾種方法,有的看起來很簡單,但也可以寫的很囉嗦:

# 第一種
str1 = "Hello " + "World"

# 第二種
str2 = "Hello "
str2 += "World"

# 第三種
a = "Hello"
b = "World"
str3 = f"{a} {b}"

# 第四種
words = ["Hello", "World"]
str4 = " ".join(words)

大家猜猜看,在這四種寫法當中,哪一種寫法的效能可能會是最差的?為什麼加上「可能」,因為在不同的版本或硬體上也許會有不一樣的結果。

讓你的文件活起來 - RAG 實作

高見龍
五倍學院 負責人

這是在 iThome 所舉辦的 Hello World Dev Conference 工作坊的內容。本次工作坊將帶著大家理解 RAG(Retrieval-Augmented Generation)技術,並使用 Python 程式語言及 LangChain 框架進行實作,最終將文件轉化為可以進行互動問題的知識庫。

現在沒用過 AI 服務的人大概都要被歸類到上個世代的化石了。不得不說,這些 AI 服務真的很厲害,但到目前一直有個比較大的困擾,就是它有時候會一本正經的講幹話,就算遇到它不會的問題,因為它講出來的內容太有自信,導致不知道它到底是真的假的。

舉個例子,如果你幫公司做了一個用來做知識管理(Knowledge Management, KM)的網站,公司內部一些相關的規定都可以在這裡查到。你在這個網站上掛了一個聊天機器人,當訪客問機器人你們家的產品多少價錢或是該怎麼退換貨的時候,這時候不知道就該說不知道,而不是硬擠答案出來。我們可以透過適當的「提示(Prompt)」來限制 AI 的回答,但還是希望 AI 不要隨便亂回答,但就是因為這樣,才有了 RAG 的出現。