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

More Related Content

What's hot

私とmysqlとROLE
私とmysqlとROLE私とmysqlとROLE
私とmysqlとROLE
lhfukamachi 深町
 
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 ServletCh02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin
 
[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所
[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所
[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所
de:code 2017
 
Giải pháp always on trong sql server 2012
Giải pháp always on trong sql server 2012Giải pháp always on trong sql server 2012
Giải pháp always on trong sql server 2012
laonap166
 
13.並行、平行與非同步
13.並行、平行與非同步13.並行、平行與非同步
13.並行、平行與非同步
Justin Lin
 
Hiveを高速化するLLAP
Hiveを高速化するLLAPHiveを高速化するLLAP
Hiveを高速化するLLAP
Yahoo!デベロッパーネットワーク
 
Ch12 Spring 起步走
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin
 
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
Ryoma Nagata
 
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
Jaikwang Lee
 
Ch07 使用 JSTL
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTL
Justin Lin
 
初心者でもわかるActive directoryの基本
初心者でもわかるActive directoryの基本初心者でもわかるActive directoryの基本
初心者でもわかるActive directoryの基本
Sho Okada
 
Redefining tables online without surprises
Redefining tables online without surprisesRedefining tables online without surprises
Redefining tables online without surprises
Nelson Calero
 
MySQLのソース・ターゲットエンドポイントとしての利用
MySQLのソース・ターゲットエンドポイントとしての利用MySQLのソース・ターゲットエンドポイントとしての利用
MySQLのソース・ターゲットエンドポイントとしての利用
QlikPresalesJapan
 
Oracle Tablespace介紹
Oracle Tablespace介紹Oracle Tablespace介紹
Oracle Tablespace介紹
Chien Chung Shen
 
グラフデータベース入門
グラフデータベース入門グラフデータベース入門
グラフデータベース入門
Masaya Dake
 
PostgreSQL失敗談
PostgreSQL失敗談PostgreSQL失敗談
PostgreSQL失敗談
Takashi Meguro
 
PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題
NTT DATA OSS Professional Services
 
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
NTT DATA Technology & Innovation
 
Qlik Replicateのファイルチャネルの利用
Qlik Replicateのファイルチャネルの利用Qlik Replicateのファイルチャネルの利用
Qlik Replicateのファイルチャネルの利用
QlikPresalesJapan
 
Spring boot
Spring bootSpring boot
Spring boot
Bhagwat Kumar
 

What's hot (20)

私とmysqlとROLE
私とmysqlとROLE私とmysqlとROLE
私とmysqlとROLE
 
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 ServletCh02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
 
[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所
[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所
[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所
 
Giải pháp always on trong sql server 2012
Giải pháp always on trong sql server 2012Giải pháp always on trong sql server 2012
Giải pháp always on trong sql server 2012
 
13.並行、平行與非同步
13.並行、平行與非同步13.並行、平行與非同步
13.並行、平行與非同步
 
Hiveを高速化するLLAP
Hiveを高速化するLLAPHiveを高速化するLLAP
Hiveを高速化するLLAP
 
Ch12 Spring 起步走
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走
 
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
 
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
 
Ch07 使用 JSTL
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTL
 
初心者でもわかるActive directoryの基本
初心者でもわかるActive directoryの基本初心者でもわかるActive directoryの基本
初心者でもわかるActive directoryの基本
 
Redefining tables online without surprises
Redefining tables online without surprisesRedefining tables online without surprises
Redefining tables online without surprises
 
MySQLのソース・ターゲットエンドポイントとしての利用
MySQLのソース・ターゲットエンドポイントとしての利用MySQLのソース・ターゲットエンドポイントとしての利用
MySQLのソース・ターゲットエンドポイントとしての利用
 
Oracle Tablespace介紹
Oracle Tablespace介紹Oracle Tablespace介紹
Oracle Tablespace介紹
 
グラフデータベース入門
グラフデータベース入門グラフデータベース入門
グラフデータベース入門
 
PostgreSQL失敗談
PostgreSQL失敗談PostgreSQL失敗談
PostgreSQL失敗談
 
PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題
 
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
 
Qlik Replicateのファイルチャネルの利用
Qlik Replicateのファイルチャネルの利用Qlik Replicateのファイルチャネルの利用
Qlik Replicateのファイルチャネルの利用
 
Spring boot
Spring bootSpring boot
Spring boot
 

Similar to 1. Python起步走

Python 起步走
Python 起步走Python 起步走
Python 起步走
Justin Lin
 
Python 起步走
Python 起步走Python 起步走
Python 起步走
Justin Lin
 
Python 进化之路.pptx
Python 进化之路.pptxPython 进化之路.pptx
Python 进化之路.pptx
Manjusaka1
 
Python系列3
Python系列3Python系列3
Python系列3
數真 蔡
 
第10章 Python计算生态.pptx
第10章 Python计算生态.pptx第10章 Python计算生态.pptx
第10章 Python计算生态.pptx
edvardarcher
 
Python First Class
Python First ClassPython First Class
Python First Class
Yao Zuo
 
Python简明教程
Python简明教程Python简明教程
Python简明教程ingong
 
简单Pthon教程
简单Pthon教程简单Pthon教程
简单Pthon教程junjun chen
 
01.python.开发最佳实践
01.python.开发最佳实践01.python.开发最佳实践
01.python.开发最佳实践Na Lee
 
Python系列1
Python系列1Python系列1
Python系列1
數真 蔡
 
Python核心编程(中文 第二版)
Python核心编程(中文 第二版)Python核心编程(中文 第二版)
Python核心编程(中文 第二版)yiditushe
 
用简单语言构建复杂系统
用简单语言构建复杂系统用简单语言构建复杂系统
用简单语言构建复杂系统
Leo Zhou
 
Learn python 2 - Real World Case
Learn python 2 - Real World CaseLearn python 2 - Real World Case
Learn python 2 - Real World Case
Chia-Hao Tsai
 
Jupyter 簡介—互動式的筆記本系統
Jupyter 簡介—互動式的筆記本系統Jupyter 簡介—互動式的筆記本系統
Jupyter 簡介—互動式的筆記本系統
Chengtao Lin
 
Linux File system
Linux File systemLinux File system
Linux File system
Kenny (netman)
 
Ready Programmer One
Ready Programmer OneReady Programmer One
Ready Programmer One
flywindy
 
Python in word cloud
Python in word cloudPython in word cloud
Python in word cloud
FEG
 
[3]投影片 futurewad樹莓派研習會 141204
[3]投影片 futurewad樹莓派研習會 141204[3]投影片 futurewad樹莓派研習會 141204
[3]投影片 futurewad樹莓派研習會 141204
CAVEDU Education
 
20121213 foundation of software development 2 2-ktchuang
20121213 foundation of software development 2 2-ktchuang20121213 foundation of software development 2 2-ktchuang
20121213 foundation of software development 2 2-ktchuangnetdbncku
 
Python 爬網⾴工具 - Scrapy 介紹
Python 爬網⾴工具 - Scrapy 介紹Python 爬網⾴工具 - Scrapy 介紹
Python 爬網⾴工具 - Scrapy 介紹
Sammy Fung
 

Similar to 1. Python起步走 (20)

Python 起步走
Python 起步走Python 起步走
Python 起步走
 
Python 起步走
Python 起步走Python 起步走
Python 起步走
 
Python 进化之路.pptx
Python 进化之路.pptxPython 进化之路.pptx
Python 进化之路.pptx
 
Python系列3
Python系列3Python系列3
Python系列3
 
第10章 Python计算生态.pptx
第10章 Python计算生态.pptx第10章 Python计算生态.pptx
第10章 Python计算生态.pptx
 
Python First Class
Python First ClassPython First Class
Python First Class
 
Python简明教程
Python简明教程Python简明教程
Python简明教程
 
简单Pthon教程
简单Pthon教程简单Pthon教程
简单Pthon教程
 
01.python.开发最佳实践
01.python.开发最佳实践01.python.开发最佳实践
01.python.开发最佳实践
 
Python系列1
Python系列1Python系列1
Python系列1
 
Python核心编程(中文 第二版)
Python核心编程(中文 第二版)Python核心编程(中文 第二版)
Python核心编程(中文 第二版)
 
用简单语言构建复杂系统
用简单语言构建复杂系统用简单语言构建复杂系统
用简单语言构建复杂系统
 
Learn python 2 - Real World Case
Learn python 2 - Real World CaseLearn python 2 - Real World Case
Learn python 2 - Real World Case
 
Jupyter 簡介—互動式的筆記本系統
Jupyter 簡介—互動式的筆記本系統Jupyter 簡介—互動式的筆記本系統
Jupyter 簡介—互動式的筆記本系統
 
Linux File system
Linux File systemLinux File system
Linux File system
 
Ready Programmer One
Ready Programmer OneReady Programmer One
Ready Programmer One
 
Python in word cloud
Python in word cloudPython in word cloud
Python in word cloud
 
[3]投影片 futurewad樹莓派研習會 141204
[3]投影片 futurewad樹莓派研習會 141204[3]投影片 futurewad樹莓派研習會 141204
[3]投影片 futurewad樹莓派研習會 141204
 
20121213 foundation of software development 2 2-ktchuang
20121213 foundation of software development 2 2-ktchuang20121213 foundation of software development 2 2-ktchuang
20121213 foundation of software development 2 2-ktchuang
 
Python 爬網⾴工具 - Scrapy 介紹
Python 爬網⾴工具 - Scrapy 介紹Python 爬網⾴工具 - Scrapy 介紹
Python 爬網⾴工具 - Scrapy 介紹
 

More from Justin Lin

Ch14 簡介 Spring Boot
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin
 
Ch11 簡介 JavaMail
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin
 
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin
 
Ch08 自訂標籤
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin
 
Ch06 使用 JSP
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
Justin Lin
 
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
 
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
Justin Lin
 
14. 進階主題
14. 進階主題14. 進階主題
14. 進階主題
Justin Lin
 
12. 除錯、測試與效能
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin
 
11. 常用內建模組
11. 常用內建模組11. 常用內建模組
11. 常用內建模組
Justin Lin
 
10. 資料永續與交換
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
Justin Lin
 
8. open() 與 io 模組
8. open() 與 io 模組8. open() 與 io 模組
8. open() 與 io 模組
Justin Lin
 
7. 例外處理
7. 例外處理7. 例外處理
7. 例外處理
Justin Lin
 
6. 類別的繼承
6. 類別的繼承6. 類別的繼承
6. 類別的繼承
Justin Lin
 
5. 從模組到類別
5. 從模組到類別5. 從模組到類別
5. 從模組到類別
Justin Lin
 
4. 流程語法與函式
4. 流程語法與函式4. 流程語法與函式
4. 流程語法與函式
Justin Lin
 
3.型態與運算子
3.型態與運算子3.型態與運算子
3.型態與運算子
Justin Lin
 
2. 從 REPL 到 IDE
2. 從 REPL 到 IDE2. 從 REPL 到 IDE
2. 從 REPL 到 IDE
Justin Lin
 
Python 3.9 技術手冊目錄
Python 3.9 技術手冊目錄Python 3.9 技術手冊目錄
Python 3.9 技術手冊目錄
Justin Lin
 
CH19:深入模組化
CH19:深入模組化CH19:深入模組化
CH19:深入模組化
Justin Lin
 

More from Justin Lin (20)

Ch14 簡介 Spring Boot
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
 
Ch11 簡介 JavaMail
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
 
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
 
Ch08 自訂標籤
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
 
Ch06 使用 JSP
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
 
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
 
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
 
14. 進階主題
14. 進階主題14. 進階主題
14. 進階主題
 
12. 除錯、測試與效能
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能
 
11. 常用內建模組
11. 常用內建模組11. 常用內建模組
11. 常用內建模組
 
10. 資料永續與交換
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
 
8. open() 與 io 模組
8. open() 與 io 模組8. open() 與 io 模組
8. open() 與 io 模組
 
7. 例外處理
7. 例外處理7. 例外處理
7. 例外處理
 
6. 類別的繼承
6. 類別的繼承6. 類別的繼承
6. 類別的繼承
 
5. 從模組到類別
5. 從模組到類別5. 從模組到類別
5. 從模組到類別
 
4. 流程語法與函式
4. 流程語法與函式4. 流程語法與函式
4. 流程語法與函式
 
3.型態與運算子
3.型態與運算子3.型態與運算子
3.型態與運算子
 
2. 從 REPL 到 IDE
2. 從 REPL 到 IDE2. 從 REPL 到 IDE
2. 從 REPL 到 IDE
 
Python 3.9 技術手冊目錄
Python 3.9 技術手冊目錄Python 3.9 技術手冊目錄
Python 3.9 技術手冊目錄
 
CH19:深入模組化
CH19:深入模組化CH19:深入模組化
CH19:深入模組化
 

1. Python起步走

  • 1.
  • 2. 1. Python起步走 • 學習目標 – 選擇 2.x 還是 3.x? – 初識 Python 資源 – 認識 Python 實作 – 建立 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使用了新的語法剖析器
  • 10. • Python 2.7是Python 2最後一個版本(不 會再有Python 2.8),官方已經在2020年 1月1日正式停止支援
  • 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 文件
  • 16.
  • 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 開放原始碼實現
  • 21.
  • 22.
  • 23.