六星源課堂:Python基礎(chǔ)必學(xué)知識,小白也能輕松上手!

Python已經(jīng)誕生30多年了,只是最近幾年才開始流行,因此可以說它是一種較“老”的語言。Python是開源的,可用于人工智能應(yīng)用(sklearn、PyLearn、Nolearn等)、統(tǒng)計計算(NumPy、SciPy、Pandas等庫)、網(wǎng)站開發(fā)(利用Django、Flask 等框架)、軟件開發(fā)等。今天六星源課堂和大家聊聊Python的發(fā)展史,以及如何高效學(xué)習(xí)Python!

1 Python概述
1.1 Python的發(fā)展史
Python語言的創(chuàng)始人為吉多·范·羅蘇姆(Guido van Rossum),荷蘭人,1982年獲得阿姆斯特丹大學(xué)數(shù)學(xué)和計算機科學(xué)碩士學(xué)位,并于同年加入一個多媒體組織CWI(Centrum Wiskunde & Informatica),成為一名調(diào)研員。
1989年,Guido為了打發(fā)圣誕節(jié)的無趣,決心開發(fā)一個新的腳本解釋程序,創(chuàng)造一種介于C和shell之間、功能全面、易學(xué)易用、可拓展的語言。最后他將這個語言起名為Python,因為他喜歡電視劇Monty Python’s Flying Circus。
1991年,Python的第一個公開版本發(fā)布,它采用C語言實現(xiàn),能夠調(diào)用C語言的庫文件,包含表、字典等核心數(shù)據(jù)類型,并具有類、函數(shù)、異常處理等的算法,采用基于模塊的可擴展系統(tǒng)架構(gòu)。
經(jīng)過近30年的發(fā)展,Python目前已進化到3.11.2版本。其應(yīng)用范圍之廣,影響之深遠,恐怕連Guido van Rossum自己也沒有想到。各版本推出時間如下:
Python 0.9.0——1991年9月;
Python 1.0——1994年1月(增加了lambda、map、filter和reduce);
Python 2.0——2000年10月(加入了內(nèi)存回收機制,構(gòu)成了現(xiàn)代Python語言框架的基礎(chǔ));
Python 2.4——2004年12月(同年WEB框架Django誕生);
Python 2.5——2006年9月;
Python 2.6——2008年10月;
Python 2.7——2010年7月;
Python 3.0——2008年12月;
Python 3.1——2009年6月;
Python 3.2——2011年2月;
Python 3.3——2012年9月;
Python 3.4——2014年3月;
Python 3.5——2015年9月;
Python 3.6——2016年12月;
Python 3.7——2018年6月;
Python 3.8——2019年10月;
Python 3.9——2020年10月;
Python 3.10——2021年10月
Python 3.11——2022年10月。
由于Python 3.X版本不再向下兼容,所以建議讀者采用3.6及以后的版本。
1.2 Python應(yīng)用領(lǐng)域
現(xiàn)在,全世界有600多種編程語言,但流行的編程語言也就20多種。如果你聽說過TIOBE排行榜,就能知道編程語言的大致流行程度。下圖是最近年常用的10種編程語言的變化圖。
2015年和2016年,Python基本處于第5位,市場占有率次于Java、C、C++和C#,從2017年開始,Python借著人工智能的東風(fēng),熱度一路水漲船高,排到第3位,現(xiàn)在已經(jīng)排在第1位。Python是一門比較注重效率的語言,不復(fù)雜,讀和寫都非常方便,所以才有“人生苦短,我用Python”這樣的調(diào)侃。
作為一門優(yōu)秀的編程語言,Python的應(yīng)用領(lǐng)域非常廣泛,可在如下領(lǐng)域大顯身手。
① 數(shù)據(jù)分析,這是Python的主要應(yīng)用領(lǐng)域之一。2016年2月,美國科學(xué)家根據(jù)對過去三十年觀測數(shù)據(jù)的分析,發(fā)現(xiàn)了引力波,所采用的數(shù)據(jù)分析工具就是Python包GWPY。
② 云計算,如使用Python開發(fā)的OpenStack。
③ WEB開發(fā),包括眾多優(yōu)秀的WEB框架,例如Django、flask、tornado等。
④ 科學(xué)計算,人工智能開發(fā),典型模塊如NumPy、SciPy、Matplotlib、Enthought Librarys、Pandas等。
⑤ 系統(tǒng)運維,例如運維人員必備的SaltStack(系統(tǒng)自動化配置和管理工具)、Ansible(自動化運維工具)等。
⑥ 圖形開發(fā),工具有easyGUI、wxPython、PyQT、TKinter等。
目前,Google、NASA、Dropbox、Red Hat、YouTube、Facebook等公司都在大力使用Python作為應(yīng)用開發(fā)語言,國內(nèi)搜狐、金山、騰訊、盛大、網(wǎng)易、百度、阿里、淘寶、土豆、新浪、果殼等公司都在使用Python完成各種各樣的任務(wù)。
1.3 Python的優(yōu)缺點
任何一種編程語言都有其優(yōu)缺點,Python也不例外。作為一門優(yōu)秀的編程語言,Python主要有以下優(yōu)點。
① 優(yōu)雅、明確、簡單,Python程序看上去簡單易懂,初學(xué)者不但入門容易,而且還容易深入進去編寫非常復(fù)雜的程序。
② 開發(fā)效率高。Python的標(biāo)準(zhǔn)庫龐大,可以幫助開發(fā)者處理諸如正則表達式、文檔生成、單元測試、線程、數(shù)據(jù)庫、網(wǎng)頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統(tǒng)、GUI(圖形用戶界面)、Tk等;除了標(biāo)準(zhǔn)庫,還有許多其它高質(zhì)量庫,如wxPython、Twisted、Scikit-Learn、Statsmodels、PyMC、Nolearn等,應(yīng)有盡有,開發(fā)者可直接下載調(diào)用,或在基礎(chǔ)庫的基礎(chǔ)上再度進行開發(fā),可大大降低開發(fā)周期,避免重復(fù)造輪子。這點類似于R語言。
③ Python屬于高級語言,編程時無需考慮怎樣管理程序使用的內(nèi)存等底層細節(jié)。
④ 可移植性強。由于它的開源本質(zhì),Python可被安裝在大多數(shù)平臺上。如果不使用那些依賴于具體系統(tǒng)的功能,Python程序無需修改就可以在幾乎所有平臺上運行,包括Linux/Unix、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE,甚至還有PocketPC、Symbian以及Google基于linux開發(fā)的Android平臺。
⑤ 極強的可擴展性。如果希望某段代碼運行得更快或者某些算法不公開,可以把這部分代碼用C或C++編寫,然后在Python程序中使用。
⑥ 靈活的可嵌入性。可以把Python嵌入C/C++程序,從而向最終用戶提供腳本功能。
⑦ 免費、開源。Python是FLOSS(自由/開放源碼軟件)之一,使用者可以自由發(fā)布這個軟件的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中。
⑧ 面向?qū)ο蟮木幊?/strong>。Python既支持面向過程的編程,也支持面向?qū)ο蟮木幊?。與C++和Java相比,Python的面向?qū)ο缶幊谈啙嵍鴱姶蟆?/p>
⑨ 代碼具有極佳的可讀性,Python采用強制縮進的方式,使代碼具有良好規(guī)范,帶來了極佳的可讀性。 Python也有缺點:一是代碼不能加密,因為Python是解釋性語言,源碼一般都以明文形式存放,如果必須加密,可以先進行編譯,進行pyc處理后再加密,類似于Java的class文件;二是相對C/C++而言,性能弱一些。當(dāng)然,Java、R等語言和C/C++相比,性能也都不如C/C++。 以上兩個缺點對于從事應(yīng)用級別程序開發(fā)的人員都不是什么問題,所以Python在眾多開發(fā)語言中的地位越來越突出,受到越來越多的青睞,而且Python語言考試也被納入2018年全國計算機等級考試大綱。 學(xué)習(xí)Python時,建議找一些搭檔一起學(xué)習(xí)和討論,這樣效果會更好。若能嘗試將一些內(nèi)容講給他人聽,則效果更佳,在講述的過程中你會思考更多。在學(xué)習(xí)的過程中,對于遇到的例子最好能逐步形成自己先思考的習(xí)慣,思考后再看看給出的示例是怎樣的,在這個過程中或許能找到比示例更好的處理方法。 此外,練習(xí)題最好也能動手完成。在寫代碼時,千萬不要用“復(fù)制”“粘貼”?把代碼從頁面粘貼到你的計算機上。寫程序講究感覺,需要一個字母一個字母地把代碼敲進去。在敲代碼的過程中,初學(xué)者經(jīng)常會敲錯,所以需要仔細檢查、對照,這樣才能以最快的速度掌握如何寫程序。在編寫代碼的過程中,寧愿寫得慢或多寫幾遍,剛開始學(xué)習(xí)或許很吃力,但隨著慢慢積累和熟悉,后面會越來越快,越來越順暢。若習(xí)慣復(fù)制代碼,或許很長一段時間后依然只會復(fù)制代碼,而不能熟悉相關(guān)內(nèi)容,速度也提升不了。 語言的發(fā)展總是不斷變化的,任何一門語言要讓大家持續(xù)不斷的使用,都需要不斷更新。語言本身需要不斷更新,學(xué)習(xí)者也要不斷學(xué)習(xí)語言本身的新東西,這樣才能與時俱進,跟上語言的發(fā)展。 Python作為一門不斷發(fā)展與普及的語言,還在不斷更新中。加入一些Python學(xué)習(xí)社區(qū)或找到一些有共同愛好的人一起學(xué)習(xí)交流是非常好的學(xué)習(xí)Python的方式。正所謂集思廣益,一起思考與學(xué)習(xí)的人多了,大家能接觸和學(xué)到的知識就會更多。在互聯(lián)網(wǎng)時代,更應(yīng)該發(fā)揮網(wǎng)絡(luò)互聯(lián)的作用,通過網(wǎng)絡(luò)學(xué)習(xí)更新穎、更與時倶進的知識。 以上就是本次分享的全部內(nèi)容,想學(xué)習(xí)更多編程技巧,歡迎持續(xù)關(guān)注六星源課堂!1.4 如何學(xué)習(xí)Python