Python 網頁程式交易APP實作 — Web + MySQL + Django

博客來連結~~

這本書是由台灣的教授所撰寫的書,我覺得其實大家應該好好的支持台灣的作者,當有了好的收入後,才能促使作者撰寫更多的相關書籍,並有資源將書不斷的修正。這系列預計推出三部曲,目前出到二部曲,也就是現在這本。照著作者的說法,跟著這三部曲,你可以從 Python 的基礎語法開始,到最後做出一個程式交易的App。不過在這本二部曲雖然掛著大大的 Python ,但老實說,並沒有很深入的著墨在 Python 上,雖然有點掛羊頭賣狗肉,不過我還是十分推薦這本書,總共有兩個大原因:

第一,這本書的內容涵蓋的相當廣泛。從一開始寫 Web 開始學起,我大約花了兩個下午就可以自己完成一些簡單的網頁,而且內容包含 HTML5 + JavaScript +Css 等基本技術,而非單純的靜態網頁,在課程後面的練習再有點挑戰下卻又不會太難,基本上如果你可以全部自己完成的話,你就會具有些許前端的能力了。而後面也一步步教你用 MySQL 建立一個 Database ,最後利用 Django 把 Database 和前端的網頁串接起來。光是這些內容其實就不已愧對這本書的價格了。但是除了這些之外本書還涵括了程式交易的爬蟲(獲取股價等資料…),並用 Python 的套件進行分析。最後你可以架設一個網站來看股並分析。

第二,這本書的售後服務相當的好,看得出作者有心好好經營這個系列。他還創立了一個 Line 的群組,大家針對書的內容可以上去提問。並且在群組中也會有針對書中內容不清楚地方或是錯誤進行即時的更新。甚至在我應用書中的內容,來架設公司的業務系統時,遇到困難後,丟到群組中也有人幫我 debug,並成功地解決掉遇到的困難,這樣的售後服務實在令我驚艷。

其實很多人學程式常常會遇到一個狀況,就是買書自己來照著操作的時候,明明操作跟步驟都和書上一模一樣 ,但是每次執行起來就是會有狀況,所以有討論群組這件事情真的蠻加分的,至少有問題的時候會有專人解答,而不是自己亂 try。

而這本書的缺點就是對於 Python 的教學相對較少( 我猜應該是內容被放到第一部曲當中) ,所以如果你是想學 Python 的初學者,如果直接進入這本書在後面爬蟲分析的地方,可能會有些障礙,如果有人看過第一部曲的話也歡迎分享心得。

目前我只買了第二部曲,等到我熟透這本書的內容後,我也會去買第一部曲來看,再和大家分享心得。不過針對想用 Django 架站或是想學寫網頁的人,這本書真的極度推薦,他一定會為你帶來滿滿的成就感 !!

利用 Python 做 ASCII 轉換

ASCII 是程式語言中的一種編碼方式,代表了電腦上的128字元。相信大家應該知道電腦是由一連串的 0 和 1 在運作,所以我們在儲存字元的時候,電腦會將他們轉換成0和1後儲存起來,不過為了方便人類看所以一般來說 ASCII 看起來會是十進位表示,不過在電腦中實際儲存的會是一組 2 進位數字。下面我來看看幾個例子:

A : 65 (0100 0001) ; B : 66(0100 0010) ; ! : 33(0010 0001)…

其中要特別注意,在 ASCII 編碼中我們會把數字也轉換成一組二進位編碼,而這組二進位編碼再轉回十進位時,看起來就會是一組不同的數字。

1 : 49(0011 0001) ; 2 : 50 (0011 0010)….

所以一開始大家可能會覺得很奇怪 : 為什麼明明是 1 在 ASCII會變成 49 ,其實他是一組2 進位方式儲存,這組二進位剛好是十進位的 49。
(詳細轉換表可以參考維基百科)

而利用 Python ,將字元做轉換,把字元轉換成 ASCII中所代表的數字,也可以把 ASCII 的數字轉換成字元,下面我們來實際操作看看吧 :

利用chr()我們可以把 ASCII 中的數字轉換成字元 :

利用ord()則可以把字元轉換成 ASCII 編碼方式:

接著我們來試著寫一個程式可以一段輸入的字元都轉換成 ASCII ,在我的做法中我會先把輸入字轉換成字串(str()),接著把字串中的每個字拿出來轉換,並儲存在一開始宣告的空清單中:

word_ascii = []
word = str(input("輸入文字"))
for i in word: 
    ascii_transform = ord(i)
    print(ascii_transform )
    word_ascii.append(ascii_transform)

print(word_ascii)

在空格中輸入我們想要轉換的字元,我們就會發現可以利用這個程式把字元通通轉換成ASCII 囉~

當然,要把 ASCII 轉換回來也OK,大家可以想一想上面的程式碼要怎麼修改。