Python的基礎
Python 英文本意為“蟒蛇”,直到 1989 年荷蘭人 Guido van Rossum (簡稱 Guido)發明了一種面向對象的解釋型編程語言(后續會介紹),並將其命名為 Python,才賦予了它表示一門編程語言的含義。
圖 1 Python 圖標
說到 Python,它的誕生是極具戲曲性的,據 Guido (龜叔)的自述記載,Python 語言是他在聖誕節期間為了打發時間開發出來的,之所以會選擇 Python 作為該編程語言的名字,是因為 Guido 是一個叫 Monty Python 戲劇團體的忠實粉絲。
看似 Python 是“不經意間”開發出來的,但絲毫不比其它編程語言差。自 1991 年 Python 第一個公開發行版問世后,2004 年 Python 的使用率呈線性增長,不斷受到編程者的歡迎和喜愛;2010 年,Python 榮膺 TIOBE 2010 年度語言桂冠;2017 年,IEEE Spectrum 發布的 2017 年度編程語言排行榜中,Python 位居第 1 位。
直至現在(2021 年 10 月份),根據 TIOBE 排行榜的顯示,Python 已位居於第 1 位(如表 2 所示)
表 2 TIOBE 2021 年 10 月份編程語言排行榜(前 10 名)
Oct 2021 | Oct 2020 | Change | Programming Language | Ratings | Change | |
---|---|---|---|---|---|---|
1 | 3 | ![]() |
![]() |
Python | 11.27% | -0.00% |
2 | 1 | ![]() |
![]() |
C | 11.16% | -5.79% |
3 | 2 | ![]() |
![]() |
Java | 10.46% | -2.11% |
4 | 4 | ![]() |
C++ | 7.50% | +0.57% | |
5 | 5 | ![]() |
C# | 5.26% | +1.10% | |
6 | 6 | ![]() |
Visual Basic | 5.24% | +1.27% | |
7 | 7 | ![]() |
JavaScript | 2.19% | +0.05% | |
8 | 10 | ![]() |
![]() |
SQL | 2.17% | +0.61% |
9 | 8 | ![]() |
![]() |
PHP | 2.10% | +0.01% |
10 | 17 | ![]() |
![]() |
Assembly language | 2.06% | +0.99% |
Python語言的特點
相比其它編程語言,Python 具有以下特點。
1、Python簡單易學
“編程零基礎,可以學習 Python 嗎”,這是很多初學者經常問的一個問題。當然,計算機基礎越好,對學習任何一門新的編程語言越有利,但如果你在編程語言的學習上屬於零基礎,也完全不用擔心。
就我個人的觀點,Python 作為學習編程的入門語言是再合適不過的,相比其他編程語言(比如 Java),Python 最大的優勢就是非常容易上手。舉個簡單的例子,如果完成一個功能,使用 Java 實現需要 100 行代碼,那么使用 Python 可能只需要 20 行。並且,在使用其它編程語言編程時(例如 C、C++),你需要時刻注意數據類型、內存溢出、邊界檢查等問題。而 Python 則不用,因為在底層實現時,它已經幫你一一處理好了。
2、Python功能強大
Python 強大的功能是很多用戶支持 Python 的最重要的原因,從字符串處理到復雜的 3D 圖形編程,Python 借助擴展模塊都可以輕松完成。
實際上,Python 的核心模塊已經提供了足夠強大的功能,使用 Python 精心設計的內置對象可以完成許多功能強大的操作。
此外,Python 的社區也很發達,即使一些小眾的應用場景,Python 往往也有對應的開源模塊來提供解決方案。
3、Python是解釋型語言
編程語言按照程序的執行方式,可以分為編譯型和解釋型兩種,典型的編譯型語言有 C、C++ 等,而解釋型語言有 Java、Python 等。
相比編譯型語言,解釋型語言最大的優勢就是可移植性強。也就是說,Python 具有非常好的跨平台的特性。
4、Python是面向對象的編程語言
Python 既支持面向過程編程,也支持面向對象編程。在“面向過程”的語言中(如 C 語言),程序僅僅是由可重用代碼的函數構建起來的;而在“面向對象”的語言(如 C++)中,程序是由數據和功能組合而成的對象構建起來的。
而且和其它面向對象的編程語言(如 C++ 和 Java)相比,Python 是以一種非常強大,而又簡單的方式實現的面向對象編程。
除此之外,Python 還有開源、有良好的可擴展性等特點。基於以上這些特性,Python 廣泛應用在人工智能、圖像處理、Web應用開發、自動化運維、網絡爬蟲等領域。
Python版本的選擇
Python 自發布以來,共歷經了 3 個大的版本,分別是:
- 1994 年發布的 Python 1.0 版本(已過時);
- 2000 年發布的 Python 2.0 版本,截止到 2021 年 01 月份,已經更新到 2.7.16;
- 2008 年發布的 Python 3.0 版本,截止到 2021 年 10 月份,已經更新到 3.10.0;
3 個版本中,Python 3.0 是一次重大的升級,為了避免引入歷史包袱,Python 3.0 沒有考慮與 Python 2.x 的兼容,這也就導致很長時間以來,Python 2.x 的用戶不願意升級到 Python 3.0。
Python 3.x 和 Python 2.x 思想基本上是共通的,只有少量的語法差別,學會的 Python 3.x,只要稍微花點時間學習 Python 2.x 的語法,即可靈活運用這兩個不同版本了。
初學者應該如何學習Python?
對於初學者來說,要做的就是專注於 Python 這一門語言,明確學習的重點,把握好學習節奏,由淺入深循序漸進地學習。根據本人多年的學習工作經驗,把編程語言的學習分為以下 3 步,無論你是否有編程基礎,都可以對照着來做。
1、多實踐,積累代碼量
任何一門編程語言,其囊括的知識面都是非常廣泛的,從基本的變量賦值、條件循環、到文件操作、並發編程等。但是,千萬不要等到把所有知識點都學完了才開始練習,因為到那時你會發現,前面好不容易記住的知識都忘記了。
學習編程,是十分講究實戰的,沒有捷徑可走,越早練習,練得越多越勤,學習效果就越好。
2、時刻注意代碼規范
學習編程語言,在追求快和高效的同時,每一種編程語言都有必要的編碼規范,一定不能忽略。
要想成為一名優秀的程序員,從起步階段就要刻意地去培養自己的編程規范。例如,在剛開始編寫代碼時,不要將原本多行的代碼全部寫到一行,也不要隨便用 a、b、c 等字母作為變量的名稱。
3、開發經驗是必不可少的
要想真正熟練地掌握 Python(或者其它編程語言),擁有大中型產品的開發經驗是必不可少的,它會讓你站得更高,望得更遠。
例如,我們幾乎每天都會用搜索引擎,但你了解一個搜索引擎的服務器端實現嗎?這是一個典型的面向對象設計,需要定義一系列相關的類和函數,還要從產品需求、代碼復雜度、效率以及可讀性等多個方面綜合考量,同時在上線后還要進行各種優化等。