Python 起步走

26

Transcript of Python 起步走

Page 1: Python 起步走
Page 2: Python 起步走

1. Python起步走

• 學習目標

– 選擇 2.x 還是 3.x?

– 初識 Python 資源

– 認識 Python 實作

– 建立 Python 環境

Page 3: Python 起步走

Python 3的誕生

• 2008 年 12 月 3 日,新出爐的 Python 3.0(也被稱為 Python 3000 或 Py3K)

• 包含了許多人引頸期盼的新功能

• 其他語法與程式庫方面的變更,也破壞了向後相容性

• 許多基於 Python 2.x 的程式,無法直接在 Python 3.0 的環境中運行

Page 4: Python 起步走

• Python 3.0 演進的指導原則

–將處理事情的老方法移除,以減少特性的重複

–做事時應該只有一種(也許也是唯一)明確的方式」之條目

Page 5: Python 起步走

• 我要學 Python 3,還是 Python 2?

–在 Python 3.0 剛釋出沒多久的那段日子裏,答案通常會是「學習 Python 2.x,因為許多程式庫還不支援!」

–許多介紹 Python 的入門文件或書藉,也不得不同時介紹 Python 2 與 3 兩個版本

–「2to3」也不能發現所有的問題

Page 6: Python 起步走

從Python 3.0到3.5

• 官方的推動

Page 7: Python 起步走

• Python 2 可以試著from __future__

import想使用的模組

• 〈Python2orPython3〉整理了許多相容轉換的相關資源

– Python 3.0 的一些較不具破壞性的特性,回饋(backport)到 Python 2.6 之中

– Python 3.1 的特性,回饋到了 Python 2.7 之中

Page 8: Python 起步走

• 回饋也會反過來從 2.x 至 3.x –在 Python 3.3 中又支援了 u‘foo’ 來表示 unicode 字串,b‘foo’來表示 byte 字串

• 相容性同時在 2.x 與 3.x 之間前進著,試著讓語法有更多交集。

• Python 3.x 本身也不斷地吸納社群經驗 – Python 3.3 中包含了 venv 模組

– Python 3.4 本身就包含了 pip

– Python 3.5 更納入了 Type hints

Page 9: Python 起步走

社群的接納

• 許多基於 Python 2.x 的程式庫或框架,這段期間一直不斷地往 Python 3.x 遷移

– Django

– Numpy

– SciPy

• 〈PYTHON 3 WALL OF SUPERPOWERS〉

– python3wos.appspot.com

Page 10: Python 起步走

• 新系統要開發時,究竟要基於 Python 2.x 或Python 3.x?

–建立良好的程式碼慣例

–社群中還有著 six 這類的套件,可以寫出相容 2.7 和 3.x 的程式碼基礎 six

Page 11: Python 起步走

• Python 2.7 是 Python 2 的最後一個版本(不會再有 Python 2.8了),且預計僅支援至 2020 年

• 作業系統也開始進行相對應的處理動作

– Linux 目前多半同時預載了 Python 2.x 與 3.x

Page 12: Python 起步走

• 我要學習 Python 2.x 還是 Python 3.x?

• 作個全面性的調查

–就像在選擇一門語言,或者是調查某個程式庫是否可以採用時,必須有著諸多考量,像是瞭解其更新(Update)的時間、修改記錄(Changelog)、修正問題(Issue)的速率、作者身份等。

Page 13: Python 起步走

• 我要學習 Python 2.x 還是 Python 3.x?

• 學習 Python 來說,可以先學 Python 3.x,因為有了 Python 3.x 的基礎,將來若有必要面對與學習 Python 2.x,並不會是件難事

Page 14: Python 起步走

初識社群資源

• Python 之父 Guido van Rossum –首位享有 BDFL 封號的開放原始碼軟體創建者

–對社群仍持續關注,在必要時能針對社群中的意見與爭議提出想法與做出最後裁決

• Python 軟體基金會 – Python Software Foundation,常簡稱為 PSF

–推廣、維護與促進 Python 程式語言的發展,同時也支持協助全球各地各式各樣 Python 程式設計師與社群的成長

–非營利組織,持有 Python 程式語言背後的智慧財產權

Page 15: Python 起步走

• Python改進提案

– Python Enhancement Proposals,常簡稱為 PEPs

– Python 的改進多是由PEP流程主導

– PEP 流程會收集來自社群的意見,為將來打算加入 Python 的新特性提出文件提案

–重要的 PEP 會經由社群與 Guido 審閱與評估,決定是否成為正式的 PEP 文件

Page 16: Python 起步走
Page 17: Python 起步走

• Python 研討會

– 如果想要知道各地的研討會資訊,可

– 以從 PyCon 網站(www.pycon.org )開始

– 〈"PyCon Taiwan" in Taiwan〉可以看到台灣Python 社群關注的重要研討會訊息

• Python 使用者群組

– PyTUG Wiki(台灣Python 使用者群組Wiki 網站)

– PyTUG Groups(台灣Python 使用者群組論譠)

– PyHUG Meetups(新竹Python 使用者群組)

– Taipei.py Meetups(台北Python 使用者群組)

– Tainan.py Meetups(台南Python 使用者群組)

Page 18: Python 起步走

Python 的實作

• CPython – Python 官方的參考實作

–以C 撰寫的實作品

–提供與 Python 套件(Package)與 C 擴充模組的最高相容性

• PyPy –使用 RPython(Restricted Python)來實現

–目的在改進 Python 程式的執行效能,同時追求與 CPython 的最大相容性

Page 19: Python 起步走

• Jython

–用 Java 實現的 Python

–能匯入、取用 Java 的相關程式庫,因而得以運用 Java 領域中的各式資源

• IronPython

–可與 .NET 平台結合的 Python 開放原始碼實現

Page 20: Python 起步走

下載與安裝 Python 3.5

Page 21: Python 起步走
Page 22: Python 起步走
Page 23: Python 起步走
Page 24: Python 起步走

認識安裝內容

Page 25: Python 起步走
Page 26: Python 起步走