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?
- Youtube
- NASA
- ..and ME!
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
猜測 = 整數(輸入('輸入一個數字: '))
如果 猜測 == 數字:
印出 '恭喜, 你猜對了.' # 一個新區塊的開始
印出 '(但沒有獎品喔!)' # 新區塊的結束
假使 猜測 < 數字:
印出 '錯了, 數字再大一點.' # 另一個區塊
# 你可以在區塊中做任何想做的事 ...
否則:
印出 '錯了, 數字再小一點.'
# 只有在猜測 > 數字 的情況下才會跑到這個區塊來
印出 '結束'
# 最後一行語句和"如果..假使..否則"語句是無關的,
# 因為最後的'印出'這行在主區塊中出現,所以這行永遠會被執行.
好寫嗎? 這見人見智了,不過挺有趣的,有興趣的朋友可以玩看看 :)