[高雄] Python 入門 – Python tutorial

在現今 Google 的大多數服務都是利用 Python 程式撰寫,例如:Google App Engine,之前買下的 Youtube 影音網站,就是因為 Youtube 是用 Python 的程式撰寫起來的一個 Web 2.0 網站,在上禮拜去參加了 工作坊 所開的一門入門的課程 Python 入門 – Python tutorial – 第一梯 (講者:黃宇新),這課程是給要學習 Python 的基本入門,講師 黃宇新 教的真的很棒,把 Python 的精神都講的非常好,自己感覺跟 Perl 的功能差沒多少,可是兩種語言在比較方面各有優缺點,聽完最大的感想歸納為兩點,那就是 Python 產生線上文件相當方便,還有非常的快速模組化,每個 Python 程式都是一個獨立模組,在其他 Python 程式裡面都以利用 import 方式來交互使用,個人認為在 系統管理、網路管理、網路傳輸程式、網頁程式開發 上面會有相當大的幫助。 Python 還有一個優點就是程式可閱讀性,在每個程式都必須有良好的撰寫習慣,那就是要善用 tab 鍵來排版,不然程式就是會錯誤,底下一個 Python 的例子,九九乘法表:
#!/usr/local/bin/python
for i in range(1,10):
  for j in range(1,10):
    print "%d*%d=%s" % (i,j,i*j),
  print ""
程式的可閱讀性,可以讓程式設計師依照這個規範來撰寫程式,將來程式控管,或者是交接給其他人,那一定相當方便,至少不會在找 if for 這些迴圈的括號,產生困擾。 程式說明撰寫:這部份我覺得 Python 做的非常好,比如說一個 Python 定義了幾個 function,那只要在程式的特定地方寫上註解,就可以利用 help 下去查了喔,請看底下例子: #!/usr/local/bin/python def fib(n): "Print a Fibonacci series up to n" a, b = 0, 1 while b < n: print b, a, b = b, a+b def test(n): "for range print" for i in range(1,n): print i def module_99(n): "9*9" for i in range(1,10): for j in range(1,n): print "%d*%d=%s" % (i,j,i*j), print "" def fib2(n): # return Fibonacci series up to n "Return a list containing the Fibonacci series up to n" result = [] a, b = 0, 1 while b < n: result.append(b) # see below a, b = b, a+b return result[/code] 上面看到 "註解" 這部份,就是可以利用 Python 的 command line help 指令可以查詢說明,撰寫說明很快,很方便,寫出來跟 man 差不多 Python (by appleboy46) Python2 (by appleboy46) PS: 如果要有中文註解請參考這篇:http://www.python.org/dev/peps/pep-0263/
  • 關於用tab縮排要注意一點就是,有時候會遇到莫明奇妙的語法錯誤,就出在於混用tab和空白,因為兩者被視為不一樣,所以最好要麻全部tab,要麻全部空白,個人認為空白比較好,因為tab在不同的環境下長度不一樣,有時會讓程式碼變成一沱慘不忍睹的東西,用空白縮排通常比較友善的IDE,像pydev都會幫忙做好,所以其實也不用太擔心

  • 嗯嗯,我自己蠻喜歡用 tab 鍵的,因為已經習慣了阿,中了 Linux 的 shell 指令毒,哈哈,不過剛剛去測試一下 pydev 還不錯用,是 Eclipse 的一個 plugin,不然之前都是用 Linux 底下操作,或者是用 pspad 編輯阿。

  • deepking

    我也是比較喜歡TAB,長度不一樣應該不會影響排板
    看起來還是一樣整齊,用空白要自已按很多下
    有點嫌麻煩XD
    感謝大大的心得~

  • peter

    To 小惡魔大大:
    最近對Python有興趣,想要開始學習它,這方面不知道能否給點方向呢?

    例如如何學習? 推薦書籍 之類.

  • Pingback: A Nice Dose of Python Tutorials For Professionals | codeManiac - Snippets, Templates, API and the best developer content()