Más contenido relacionado
La actualidad más candente (20)
Similar a 1. Python起步走 (20)
1. Python起步走
- 3. Python 3的誕生
• 2008 年 12 月 3 日,新出爐的 Python 3.0
(也被稱為 Python 3000 或 Py3K)
• 包含了許多人引頸期盼的新功能
• 其他語法與程式庫方面的變更,也破壞了
向後相容性
• 許多基於 Python 2.x 的程式,無法直接在
Python 3.0 的環境中運行
- 4. • Python 3.0 演進的指導原則
– 將處理事情的老方法移除,以減少特性的重複
– 做事時應該只有一種(也許也是唯一)明確的
方式」之條目
- 5. • 我要學 Python 3,還是 Python 2?
– 在 Python 3.0 剛釋出沒多久的那段日子裏,答
案通常會是「學習 Python 2.x,因為許多程式
庫還不支援!」
– 許多介紹 Python 的入門文件或書藉,也不得
不同時介紹 Python 2 與 3 兩個版本
– 「2to3」也不能發現所有的問題
- 7. • Python 2 可以試著from __future__
import想使用的模組
• 〈Python2orPython3〉整理了許多相容轉
換的相關資源
– Python 3.0 的一些較不具破壞性的特性,回饋
(backport)到 Python 2.6 之中
– Python 3.1 的特性,回饋到了 Python 2.7 之
中
- 8. • 回饋也會反過來從 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
- 9. • Python 3.6加強了Type hints、新增格式化
字串常量(Formatted string literals)等
• Python 3.7在效能上做了很大的改進
• Python 3.8在指定、參數、格式化字串常
量等方面做了些改進
• Python 3.9使用了新的語法剖析器
- 11. 社群的接納
• 許多基於 Python 2.x 的程式庫或框架,這
段期間一直不斷地往 Python 3.x 遷移
– Django
– Numpy
– SciPy
• 作業系統已進行相對應的調整
– Linux不少已預設使用Python 3.x
- 12. • 我要學習 Python 2.x 還是 Python 3.x?
• 全面性的調查
– 就像在選擇一門語言,或者是調查某個程式庫
是否可以採用時,必須有著諸多考量,像是瞭
解其更新(Update)的時間、修改記錄
(Changelog)、修正問題(Issue)的速率、
作者身份等。
- 13. • 我要學習 Python 2.x 還是 Python 3.x?
• 如果沒有包袱,當然是先學Python 3.x
• 有了Python 3.x的基礎,將來若有必要面對
與學習Python 2.x,並不是件難事。
- 14. 初識社群資源
• Python 之父 Guido van Rossum
– 首位享有 BDFL 封號的開放原始碼軟體創建者
– 對社群仍持續關注,在必要時能針對社群中的
意見與爭議提出想法與做出最後裁決
• Python 軟體基金會
– Python Software Foundation,常簡稱為 PSF
– 推廣、維護與促進 Python 程式語言的發展,
同時也支持協助全球各地各式各樣 Python 程
式設計師與社群的成長
– 非營利組織,持有 Python 程式語言背後的智
慧財產權
- 15. • Python改進提案
– Python Enhancement Proposals,常簡稱為
PEPs
– Python 的改進多是由PEP流程主導
– PEP 流程會收集來自社群的意見,為將來打算
加入 Python 的新特性提出文件提案
– 重要的 PEP 會經由社群與 Guido 審閱與評估,
決定是否成為正式的 PEP 文件
- 17. • 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 使用者群組)
- 18. Python 的實作
• CPython
– Python 官方的參考實作
– 以C 撰寫的實作品
– 提供與 Python 套件(Package)與 C 擴充模
組的最高相容性
• PyPy
– 使用 RPython(Restricted Python)來實現
– 目的在改進 Python 程式的執行效能,同時追
求與 CPython 的最大相容性
- 19. • Jython
– 用 Java 實現的 Python
– 能匯入、取用 Java 的相關程式庫,因而得以運
用 Java 領域中的各式資源
• IronPython
– 可與 .NET 平台結合的 Python 開放原始碼實現