Python - 歷史
Python的歷史
你好,有抱負的Python程序员!很高興能帶你走進Python迷人歷史的旅程。作為一個教了超過十年編程的人,我告訴你,了解一種語言的根源真的能幫助你欣賞它的設計和哲學。
Python的故事開始於1980年代末期,但在我們深入了解之前,讓我分享一個小趣事。我還記得我第一次得知Python的創造時 – 我對它的名字感到非常好笑!你看,它的名字不是來自於蛇,而是來自於英國喜劇團體Monty Python。這個獨特的故事起源完美地體現了我們即將探索的語言的有趣和親切性。
Python的誕生
Python是在1989年12月由Guido van Rossum創造的,他是一位在荷蘭Centrum Wiskunde & Informatica(CWI)工作的荷蘭程序員。Guido當時正在尋找一個愛好編程項目來讓他在聖誕節假期中忙碌。他不知道的是,他的“愛好”將演變成世界上最流行的編程語言之一!
誰發明了Python?
如前所述,Python是由Guido van Rossum創造的。Guido常常被親切地稱為Python的“仁慈的終身獨裁者”(BDFL),這個頭銜他持續到2018年7月,當時他從這個角色上退下。
Guido對Python的願景是創造一種語言,它應該是:
- 易於閱讀和理解
- 開源,這樣任何人都可以為其發展做出貢獻
- 適合日常任務
- 盡可能簡單和直接
這些原則指導了Python的整個發展歷史,使它成為今天人們喜愛的語言。
Python的演變 - Python的主要版本發布
讓我們來看看Python演變中的主要里程碑。我會以表格的形式呈現這些信息,方便參考:
版本 | 發布日期 | 關鍵特性 |
---|---|---|
Python 0.9.0 | 1991年2月 | 第一個版本,包含具有繼承的類,異常處理,函數和核心數據類型 |
Python 1.0 | 1994年1月 | 添加了函數式編程工具,如 lambda ,map ,filter 和 reduce
|
Python 2.0 | 2000年10月 | 引入列表解析,垃圾回收系統 |
Python 3.0 | 2008年12月 | 主要修訂,與Python 2.x不兼容 |
Python 3.5 | 2015年9月 | 添加了 async 和 await 語法用於異步編程 |
Python 3.6 | 2016年12月 | 引入f-字符串進行字符串格式化 |
Python 3.7 | 2018年6月 | 添加了數據類別,改進asyncio |
Python 3.8 | 2019年10月 | 引入海象運算符(:=)用於賦值表達式 |
Python 3.9 | 2020年10月 | 改進dict和字符串方法,添加新解析器 |
Python 3.10 | 2021年10月 | 引入結構化模式匹配 |
Python 3.11 | 2022年10月 | 改進錯誤消息,更快 的CPython |
每一個版本都為這種語言帶來了重要的改進和新的特性。讓我們看看一些代碼示例來說明這些變化。
Python 2.0 - 列表解析
# 在列表解析之前
squares = []
for x in range(10):
squares.append(x**2)
# 使用列表解析
squares = [x**2 for x in range(10)]
print(squares) # 輸出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
列表解析提供了一種更簡潔和易於閱讀的方式,基於現有的列表或可迭代對象創建列表。
Python 3.6 - F-字符串
name = "Alice"
age = 30
# 在f-字符串之前
print("My name is {} and I'm {} years old.".format(name, age))
# 使用f-字符串
print(f"My name is {name} and I'm {age} years old.")
# 輸出: My name is Alice and I'm 30 years old.
F-字符串使字符串格式化更加直觀和易於閱讀。
Python 2.x的EOL
現在,讓我們談談Python歷史中的一個重要事件 – Python 2.x的生命終結(EOL)。
2020年1月1日,Python 2達到了生命終結。這意味著Python開發團隊不再維護或更新Python 2,包括安全更新。
這在Python社區中是一件大事。許多開發者和公司必須將他們的代碼從Python 2遷移到Python 3。這是一個挑戰性的過程,但這是必要的,讓這種語言向前發展。
如果你現在剛開始學習Python,那麼你很幸運!你不必擔心Python 2和3之間的差異。你可以專注於學習最新的Python 3版本。
Python的當前版本
根據我最后一次更新,Python的當前穩定版本是3.11.3。但是,定期查看官方Python網站以獲取最新信息總是一個好主意,因為新版本會定期發布。
Python 3.11中有什麼新功能?
Python 3.11於2022年10月發布,帶來了幾個激動人心的改進。讓我們看看一些關鍵特性:
- 改進的錯誤消息:Python 3.11提供更精確的錯誤位置和更清晰的錯誤消息,使調試更容易。
# 在Python 3.11之前
def greet(name):
return "Hello, " + name + "!"
print(greet(123))
# TypeError: can only concatenate str (not "int") to str
# 在Python 3.11中
def greet(name):
return "Hello, " + name + "!"
print(greet(123))
# TypeError: can only concatenate str (not "int") to str
# 你是否想要將右側轉換為字符串?
-
更快的CPython:Python 3.11比其前身快得多,一些基準測試顯示速度提高了60%。
-
錯誤組:此功能允許你同時 raise 和 catch 多個不相關的異常。
def process_data(data):
try:
# 一些可能 raise 多個異常的複雜操作
pass
except* ValueError as e:
print("發生值錯誤:", e)
except* TypeError as e:
print("發生類型錯誤:", e)
- 任務和異常組:這些
asyncio
模塊中的新功能使管理多個異步任務變得更加容易。
async def main():
async with asyncio.TaskGroup() as tg:
task1 = tg.create_task(some_coro())
task2 = tg.create_task(another_coro())
# 當上下文管理器退出時,所有任務都會自動等待
這些改進使Python變得更加強大和用户友好,繼續保持其作為初學者和有經驗的程序員都喜歡的優秀語言的傳統。
總結來說,Python的歷史證明了其社區驅動的發展和對簡潔性和可讀性的重視。從一個假期的愛好項目到成為世界上最流行的編程語言之一,Python已經走了一段很長的路。當你開始你的Python旅程時,請記住,你不仅仅是在學習一種編程語言 – 你正在成為一個豐富和充滿活力社區的一部分,這個社區有一段迷人的歷史。開心編程!
Credits: Image by storyset