Python 簡介

What is Python?

Python 的老爸是,Guido van Rossum,聽說是他在 1989 年的時候的某個聖誕節無聊,然後就設計出這套程式語言,1991 年放出來給大家用,到目前已經有將近 20 年的歷史了。

目前主流的版本是 2.x 跟 3.x 系列,最新的版本目前分別是 2.7.2 版及 3.2.2 版,但 2.x 跟 3.x 有不少地方是不相容的,各位在使用時還請多留意。

設計哲學

the Zen of Python 裡提到了 Python 的設計哲學:

There should be one-- and preferably only one --obvious way to do it.

這與其它程式語言例如 Perl 的"There is more than one way to do it"是完全不同的。

What can Python do?

Python 是一種物件導向的語言,雖然它被歸類到 scripting language 一族,但它能做的事情跟一般的程式語言一樣,從數學運算、系統管理到網站開發,它都做得來的,而且都還做得不錯。

有人會覺得嫌 Python 很慢,老實說,我是不覺得慢到哪裡去。當然拿它跟編譯型的程式語言比當然不公平,不過也就是因為它不用編譯,而且語法很好學好寫,開發速度相對的會比編譯型的語言要來得高。

Who is using Python?

Why Python?

每種程式語言都有它的優缺點,以下是我個人覺得我喜歡 Python 的一些特點:

程式碼強制縮排

在 Python 寫程式,程式碼強制一定要縮排,長得像這樣:

def say_hello():
  print "Hello Python"
  print "Hello again!"

像這樣,不管你是要用 tab 或空白(space)都可以,要縮 2 格或 4 格都 ok,只要對齊就行了。只要程式碼沒有對齊,在執行的時候就會直接出現IndentationError的錯誤訊息而無法繼續執行。

也許有些人不喜歡這種被強制規定的感覺,不過我個人還滿喜歡的。在別的程式語言,有的人喜歡把大括號放在最後面,有人喜歡把大括號放下一行,像這樣:

function type1() {
  // 把大括號放最後面
}

function type2() {
  // 把大括號放下一行
}

這沒有誰好誰壞的問題,不過這個在 Python 就比較不會有這樣的困擾,也因為如此,即使你是接手別人的案子,基本上程式碼的長相也不會差太多。

而且我真的遇過程式碼不縮排或亂縮排的工程師..

支援多個平台

目前幾乎所有比較主流的平台上面都有支援了,也就是說你在 Linux 底下寫的程式,搬到 Windows 上也能執行。(當然前提是沒有用到一些系統特定的模組或 method)

免費取得

不僅不用錢,而且連 Python 的原始碼都可以讓你帶回家研究。

開發工具易取得

其實寫 Python 不用什麼特別的開發工具,基本上只要是一般的文字編輯器就可以了。也有一些像PyDev這種為 Python 量身打造的 IDE(Integrated Development Environment)也不錯用,不過我個人偏好純文字編輯器,例如Vi,至少開啟速度快,而且搭配一些好用的外掛,該有的功能都差不多該有了。

其它

電腦程式語言幾乎都是外國人的世界,你有想過用中文可以寫程式嗎? 有個叫做周蟒的專案做到了。這是用中文寫出來的 Python 程式:

#!/usr/bin/env zhpy
# 檔名: if.py
數字 = 23
猜測 = 整數(輸入('輸入一個數字: '))
如果 猜測 == 數字:
    印出 '恭喜, 你猜對了.' # 一個新區塊的開始
    印出 '(但沒有獎品喔!)' # 新區塊的結束
假使 猜測 < 數字:
    印出 '錯了, 數字再大一點.' # 另一個區塊
    # 你可以在區塊中做任何想做的事 ...
否則:
    印出 '錯了, 數字再小一點.'
    # 只有在猜測 > 數字 的情況下才會跑到這個區塊來
印出 '結束'
# 最後一行語句和"如果..假使..否則"語句是無關的,
# 因為最後的'印出'這行在主區塊中出現,所以這行永遠會被執行.

好寫嗎? 這見人見智了,不過挺有趣的,有興趣的朋友可以玩看看 :)