引言 虛擬機器 Linux/Ubuntu
使用python的平台 Python的中文問題 Google App Engine
python版本差異 應用 延伸閱讀

計算機概論與程式語言課程補充說明:

 

引言

雖然課程已經結束,由於課程後半段的內容比較雜,除了要學習python外, 還有ubuntu、virtualbox等作業環境相關的問題需要適應,所以大部分同學 應該還是對很多內容一知半解,所以我把一些補充資料放在這裡,同學們有空可以參考。
top

虛擬機器

詳細說明請google。

一般來說我們的作業系統都是安裝在實體機器上,比方說系上大學部電腦室中安裝的作業系統是win7。 如果我們希望在同一台機器上安裝其他作業系統(ubuntu、win xp),古早的做法是使用多重開機方式, 在硬碟上重新切一塊分割或是另外再買一顆硬碟安裝新的作業系統,但是安裝的過程如果犯錯, 可能就會把你原有的作業系統給刪除掉。

虛擬機器提供了一個很安全的方式讓我們可以在原有的(Host)系統上,再安裝一個(Guest)作業系統, Guest系統不是直接使用實體機器上的硬體,而是透過虛擬機器應用程式以及Host系統使用硬體, 比方說Guest系統中的硬碟其實是程式模擬儲存在一個虛擬磁碟映像檔中。由於Guest系統使用的硬體 是透過程式模擬,所以無法完全發揮實體機器的效能,所以如果使用者重視的是效能(比方說科學研究 或是玩遊戲),那就不適合在虛擬機器上執行,但是在教育學習上,虛擬機器提供了一個非常好的平台。

系上使用的虛擬機器是VirtualBox,下載以及使用說明可以參考底下連結。
VirtualBox v4.3.12(繁體中文版)虛擬電腦 by 重灌狂人
top

Linux/Ubuntu

系上虛擬機器中安裝的作業系統是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虛擬硬碟

打開虛擬機器後,請依下列步驟操作:
  1. 請按下 Ctrl + Alt + F2,切換到tty2(注意最上面的文字)
  2. 使用vagrant帳號登入,密碼vagrant
  3. 登入後 請輸入 startx,可以進入視窗介面
  4. 在Actuvutues按左鍵,會出現一排icon,選擇終端機(terminal)
  5. 如果要使用ipython notebook(應該是舊版的),可以在終端機中輸入ipython notebook
  6. 如果要使用資料分析套件orange,請在終端機中輸入 sudo orange-canvas
  7. 如果要關機,請在終端機中輸入 sudo shutdown -P now;或是使用virtualbox最上面那一排機器欄位裡的ACPI關機選項
資料分析套件orange的使用可以參考 張家齊7/14的演講
top

使用/學習python的平台

在課程中,我們在三個環境中使用過python:codecademy、ipython notebook、還有在終端機中執行,這邊稍微說明一下差異: top

Python的中文問題

Python 2.7版(上課時使用的版本)在使用中文上有很多問題,請參考底下幾個連結:

Python 3 在處理字串時已經全部改為 unicode 儲存,所以問題簡化不少,請參考 Python 3.0 的新玩意

top

Google App Engine

Google APP Engine是今年的嘗試,由於時間的關係,所以沒有辦法講解清楚。 有同學建議這部分從更簡單的程式開始練習,效果可能會更好。 不過比較大的問題是大家對於 Terminal/命令列 的使用不習慣以及html格式的不了解, 再加上時間不足,所以效果不好。不過GAE還有web programming對初學者來說,本來就比較困難, 我的目的也只是希望讓大家能體驗一下而已XD

在同學們對於 ubuntu/linux 指令以及python較熟悉後,建議可以再試試我給的例子 Google App Engine 簡介,有時間我會再放幾個更簡單的範例。

top

python版本差異

python 2.7和Python 3對我來說最主要的差別是處理中文(字串)還有print的部分, 詳細內容請參考 Python 3.0 的新玩意

top

應用

底下是幾個同學會有興趣的應用,抓漫畫或是成交量需要先了解 Regular Expression,以及網站網頁的寫法。

Regular Expression/正規表示式是處理資料非常重要的一個工具,請參考 一輩子受用的 Regular Expression以及 python-Regular Expression

網站網頁除了一般的html格式或是較新的標準外,由於大部分你想抓資料的網站都使用 javascript,所以看懂javascript是必要的(知道你要的資料在哪就足夠了XD)

top

延伸閱讀

  • wget 指令用法與教學
  • Python- Regular Expression
  • 大學 git 與 python 學習推廣團
  • top
    Min-Hung Chen 2014-7-16