python系列之 python的起源

2021-08-20 10:58:34 字數 2291 閱讀 6932

根據tiobe發布的2023年5月程式語言排行,可以看到python作為現在十分火熱的語言,一直都是保持在前列。

5 月程式語言排行榜 top20 榜單:

top 10程式語言tiobe指數走勢(2002-2018)

今天就介紹一下python語言背後的起源。

python,由荷蘭人guido van rossum於2023年發明,第乙個公開發行版發行於2023年。

作為python的作者,是什麼促使他設計了這個語言呢?

在80年代,個人電腦的配置較之如今是極低的,程式設計師不得不努力思考如何最大化利用空間,以寫出符合機器口味的程式。而正是因為這一點,讓guido感到苦惱。他認為這樣編寫程式實在是太過於耗費時間,於是他想到了shell。shell可以像膠水一樣,將unix下的許多功能連線在一起。許多c語言下上百行的程式,在shell下只用幾行就可以完成。然而,shell的本質是呼叫命令,它並不是乙個真正的語言,shell不能全面的調動計算機的功能。

於是,guido開始思考,是否能設計一款語言,使它同時具備c與shell的優點,既能夠全面呼叫計算機的功能介面,又可以輕鬆編寫程式。

後來他進入cwi(centrum wiskunde & informatica, 數學和計算機研究所)工作,並參加了abc語言的開發。abc語言旨在讓語言變得容易閱讀,容易使用,容易記憶,容易學習。但由於它的可拓展性差,不能直接io,過度革新與傳播困難,導致它不為大多數程式設計師所接受(因為語法上的過度革新,加大了程式設計師的學習難度)與傳播。

除去這些缺點,我們不難看出,abc就guido心中所期望的那款語言的雛形。

2023年聖誕節期間,在阿姆斯特丹,guido為了打發聖誕節的無趣,決心開發乙個新的指令碼解釋程式,做為abc 語言的一種繼承。而取名python,是取自他摯愛的一部電視劇集monty python』s flying circus 。

2023年,第乙個python編譯器誕生,它是用c語言實現的,並能夠呼叫c庫(.so檔案)。從一出生,python已經具有了:類(class),函式(function),異常處理(exception),包括表(list)和詞典(dictionary)在內的核心資料型別,以及模組(module)為基礎的拓展系統。

guido為防止重蹈abc的覆轍,著重注意python的可擴充套件性,並且也沿用了c中的大部分語法習慣,而這,使python得到guido同事的歡迎。他們迅速的反饋使用意見,並參與到python的改進。

python誕生在乙個幸運的時間。2023年代初,個人計算機開始進入普通家庭。intel發布了486處理器,windows發布window 3.0開始的一系列視窗系統,計算機的效能大大提高。並且由於internet隨個人電腦的普及而為人們所廣知,許多程式設計師以及資深計算機使用者頻繁使用internet進行交流,這使得python沒有了硬體上的束縛與傳播上的困難,再加上python易於使用的特點,使python得到了一定程度上的傳播。

guido維護了乙個maillist,python使用者通過郵件進行交流。因為python使用者來自許多領域,有不同的背景,對python也有不同的需求。python相當的開放,又容易拓展,所以當使用者不滿足於現有功能,很容易對python進行拓展或改造。隨後,這些使用者將改動發給guido,並由guido決定是否將新的特徵加入到python或者標準庫中。這就使得不同領域的優點集中於python。

後來的python2.0,從maillist的開發方式,轉為完全開源的開發方式,(開源:由於internet讓資訊交流成本大大下降,所出現的一種新的軟體開發模式)python的資料庫的擴充套件速度與傳播速度也由此更進一步。

到今天,python的框架已經確立。python語言以物件為核心組織**(everything is object),支援多種程式設計正規化(multi-paradigm),採用動態型別(dynamic typing),自動進行記憶體**(garbage collection)。python支援解釋執行(interpret),並能呼叫c庫進行拓展。python有強大的標準庫 (battery included)。由於標準庫的體系已經穩定,所以python的生態系統開始拓展到第三方包。

reference:

後起之秀的煉成——python誕生與崛起之路

python簡史

Python系列之 python運算子

廢話不多說,上節說的是資料型別,本篇講講資料運算。在算式 1 2 中,1 和 2 被稱為運算元,被稱為運算子 python語言支援以下運算子 0x00.算術運算子 以下假設變數a為10,變數b為20 運算子描述例項 加 兩個物件相加 a b 輸出結果 30 減 得到負數或是乙個數減去另乙個數 a b...

python中的空語句 Python系列之常用語句

之前介紹了基本函式知識,這次我們一起來看下常用的語句,常用語句大概分為條件語句,迴圈語句,迴圈控制語句,pass語句這幾種,我們一一來看 1 條件語句 說起條件語句,我想學過程式設計的人會想到if else switch case 但是有一點需要注意python不支援switch語句,因此判斷結果對...

python系列教程 python系列教程

宣告 在人工智慧技術教學期間,不少學生向我提一些python相關的問題,所以為了讓同學們掌握更多擴充套件知識更好的理解人工智慧技術,我讓助理負責分享這套python系列教程,希望能幫到大家!由於這套python教程不是要由所寫,所以不如我的人工智慧技術教學風趣幽默,學起來比較枯燥 但它的知識點還是講...