|
一般來說我們的作業系統都是安裝在實體機器上,比方說系上大學部電腦室中安裝的作業系統是win7。 如果我們希望在同一台機器上安裝其他作業系統(ubuntu、win xp),古早的做法是使用多重開機方式, 在硬碟上重新切一塊分割或是另外再買一顆硬碟安裝新的作業系統,但是安裝的過程如果犯錯, 可能就會把你原有的作業系統給刪除掉。
虛擬機器提供了一個很安全的方式讓我們可以在原有的(Host)系統上,再安裝一個(Guest)作業系統, Guest系統不是直接使用實體機器上的硬體,而是透過虛擬機器應用程式以及Host系統使用硬體, 比方說Guest系統中的硬碟其實是程式模擬儲存在一個虛擬磁碟映像檔中。由於Guest系統使用的硬體 是透過程式模擬,所以無法完全發揮實體機器的效能,所以如果使用者重視的是效能(比方說科學研究 或是玩遊戲),那就不適合在虛擬機器上執行,但是在教育學習上,虛擬機器提供了一個非常好的平台。
系上使用的虛擬機器是VirtualBox,下載以及使用說明可以參考底下連結。
系上虛擬機器中安裝的作業系統是Ubuntu 12.04 LTS版,Ubuntu使用方法可以參考底下連結,或是網路上隨便
google都可以找到的資料
Ubuntu教學整理 by 阿剛老師的異想世界
會考慮在系上電腦安裝VirtualBox的一個原因是 在window上安裝免費/開源軟體實在太麻煩了。 比方說要安裝 gfortran、gcc 或是 sagemath,常常都要求另外安裝一些軟體才能使用,或是 使用上非常麻煩,所以最後決定乾脆安裝VirtualBox以及Ubuntu
系上電腦室的虛擬磁碟映像檔過於肥大,不適合下載,所以我找了另一個映像檔讓大家下載使用: box-disk1.7z(大小約2.23G,請使用7-zip解壓縮)
映像檔裡的作業系統是ubuntu,但是版本以及介面和電腦室的系統不同。這個VM是今年 PyConAPAC 2014 Tutorial - PlaY Data課程使用的VM。
VM是使用Vagrant產生的,過程可以參考 VirtualBox 4.1掛載VMWare虛擬硬碟
打開虛擬機器後,請依下列步驟操作:ipython notebook是python套件中 interactive(互動式) python提供的web界面。 除了可以做為學習的平台外,也是一個非常實用的平台;比方說我給大部分同學期末報告的建議題目: 畫函數圖形、算微分積分等等。除此之外,產生的筆記本也可以分享給其他朋友,讓大家使用, 所以在網路上你可以看到非常多以ipython notebook製作的學習講義,比方說 A gallery of interesting IPython Notebooks。這些筆記本除了傳統講義的內容外,還可以讓讀者可以 實際操作,所以非常適合學習。
使用方式可以參考 炎龍老師的 blog、 IPython Notebook: 交互計算新時代。 同學可以在自己的電腦下載 水蟒 (Anaconda)安裝使用。
ipython notebook當然有缺點,比方說如果我要做大型科學計算或是寫一個遊戲程式時,ipython notebook 可能就有點累贅,不如直接寫成程式檔在終端機中執行,不過最大的缺點是必需要安裝相關軟體才能使用。 克服這個問題有幾個方法,一個是把ipynb檔轉換成其他格式(html,pdf,...)再分享; 另一個是使用 nbviewer 打開ipynb檔的url位址。
ipynb檔可以使用nbconvert 轉換成其他格式,在轉換為pdf檔時,nbconvert其實是先產生latex檔, 再編譯成pdf檔。但是如果notebook中有中文時,nbconvert會發生錯誤,修正方式是只產生latex檔, 修改後再以xelatex編譯成pdf檔,參考 IPython Notebook 轉成LaTeX 時的中文問題解決方案。 我學期末提供的 NBtoPDF.zip,基本上是參考連結寫的程式。
關於latex可以參考 LaTeX技巧10:LaTeX數學公式輸入初級入門python ./hello.py檔名(hello.py)前的"./"表示的是目前工作目錄,所以假設hello.py的位置不是目前的目錄, 而是目前目錄的一個子目錄(myhello_dir),則以下列指令執行該檔案:
python ./myhello_dir/hello.py
撰寫python程式的編輯器沒有特別的要求,在ubuntu/linux上主要有emacs與vi/vim兩大派(請參考 編輯器之戰,不過好的編輯器在寫程式方面有很大的幫助,系上ubuntu安裝的是 komodo edit。
初學者除了codecademy平台的學習外,我會建議也花點時間看一下 A Byte of Python。 topPython 2.7版(上課時使用的版本)在使用中文上有很多問題,請參考底下幾個連結:
Google APP Engine是今年的嘗試,由於時間的關係,所以沒有辦法講解清楚。 有同學建議這部分從更簡單的程式開始練習,效果可能會更好。 不過比較大的問題是大家對於 Terminal/命令列 的使用不習慣以及html格式的不了解, 再加上時間不足,所以效果不好。不過GAE還有web programming對初學者來說,本來就比較困難, 我的目的也只是希望讓大家能體驗一下而已XD
在同學們對於 ubuntu/linux 指令以及python較熟悉後,建議可以再試試我給的例子 Google App Engine 簡介,有時間我會再放幾個更簡單的範例。
toppython 2.7和Python 3對我來說最主要的差別是處理中文(字串)還有print的部分, 詳細內容請參考 Python 3.0 的新玩意
top底下是幾個同學會有興趣的應用,抓漫畫或是成交量需要先了解 Regular Expression,以及網站網頁的寫法。
Regular Expression/正規表示式是處理資料非常重要的一個工具,請參考 一輩子受用的 Regular Expression以及 python-Regular Expression。
網站網頁除了一般的html格式或是較新的標準外,由於大部分你想抓資料的網站都使用 javascript,所以看懂javascript是必要的(知道你要的資料在哪就足夠了XD)
top