Python入門教程(如何學(xué)習(xí)電腦入門)
Python 英文本意為“蟒蛇”,直到 1989 年荷蘭人 Guido van Rossum (簡(jiǎn)稱 Guido)發(fā)明了一種面向?qū)ο蟮慕忉屝途幊陶Z言(后續(xù)會(huì)介紹),并將其命名為 Python,才賦予了它表示一門編程語言的含義。
圖1Python 圖標(biāo)
說到Python,它的誕生是極具戲曲性的,據(jù)Guido的自述記載,Python語言是他在圣誕節(jié)期間為了打發(fā)時(shí)間開發(fā)出來的,之所以會(huì)選擇Python作為該編程語言的名字,是因?yàn)镚uido是一個(gè)叫Monty Python戲劇團(tuán)體的忠實(shí)粉絲。
看似Python是“不經(jīng)意間”開發(fā)出來的,但絲毫不比其它編程語言差。自1991年P(guān)ython第一個(gè)公開發(fā)行版問世后,2004年P(guān)ython的使用率呈線性增長(zhǎng),不斷受到編程者的歡迎和喜愛;2010年,Python榮膺 TIOBE 2010年度語言桂冠;2017年,IEEE Spectrum發(fā)布的2017年度編程語言排行榜中,Python位居第1位。直至現(xiàn)在(2021年8月份),根據(jù)TIOBE 排行榜的顯示,Python也居于前三,且有繼續(xù)提升的態(tài)勢(shì)(如表2所示)。
Python語言的特點(diǎn)
相比其它編程語言,Python具有以下特點(diǎn)。
1D Python簡(jiǎn)單易學(xué)
“編程零基礎(chǔ),可以學(xué)習(xí)Python嗎”,這是很多初學(xué)者經(jīng)常問的一個(gè)問題。當(dāng)然,計(jì)算機(jī)基礎(chǔ)越好,對(duì)學(xué)習(xí)任何一門新的編程語言越有利,但如果你在編程語言的學(xué)習(xí)上屬于零基礎(chǔ),也完全不用擔(dān)心。
就我個(gè)人的觀點(diǎn),Python作為學(xué)習(xí)編程的入門語言是再合適不過的,相比其他編程語言(比如Java),Python最大的優(yōu)勢(shì)就是非常容易上手。舉個(gè)簡(jiǎn)單的例子,如果完成一個(gè)功能,使用Java實(shí)現(xiàn)需要100行代碼,那么使用Python可能只需要20行。
有人可能會(huì)問,將 C 語言作為入門語言不好嗎?就目前的就業(yè)形勢(shì)來說,僅掌握 C 語言是很難找到高薪的工作的,而掌握 Python 則不同。
并且,在使用其他編程語言編程時(shí)(例如C、C++),你需要時(shí)刻注意數(shù)據(jù)類型、內(nèi)存溢出、邊界檢查等問題。而Python則不用,因?yàn)樵诘讓訉?shí)現(xiàn)時(shí),它已經(jīng)幫你—一處理好了。
2> Python功能強(qiáng)大
Python強(qiáng)大的功能是很多用戶支持Python的最重要的原因,從字符串處理到復(fù)雜的3D 圖形編程,Python借助擴(kuò)展模塊都可以輕松完成。
實(shí)際上,Python的核心模塊已經(jīng)提供了足夠強(qiáng)大的功能,使用Python精心設(shè)計(jì)的內(nèi)置對(duì)象可以完成許多功能強(qiáng)大的操作。Python的社區(qū)也很發(fā)達(dá),即使一些小眾的應(yīng)用場(chǎng)景,Python往往也有對(duì)應(yīng)的開源模塊來提供解決方案。
3) Python是解釋型語言
編程語言按照程序的執(zhí)行方式,可以分為編譯型和解釋型兩種,典型的編譯型語言有C.C++等.而解釋型語言有Java、Python等。相比編譯型語言,解釋型語言最大的優(yōu)勢(shì)就是可移植性強(qiáng)。也就是說,Python具有非常好的跨平臺(tái)的特性。
4) Python是面向?qū)ο蟮木幊陶Z言
Python既支持面向過程編程,也支持面向?qū)ο缶幊獭T凇懊嫦蜻^程”的語言中(如C語言),程序僅僅是由可重用代碼的函數(shù)構(gòu)建起來的;而在“面向?qū)ο蟆钡恼Z言(如C++)中,程序是由數(shù)據(jù)和功能組合而成的對(duì)象構(gòu)建起來的。而且和其它面向?qū)ο蟮木幊陶Z言(如C++和Java)相比,Python是以一種非常強(qiáng)大,而又簡(jiǎn)單的方式實(shí)現(xiàn)的面向?qū)ο缶幊獭?/p>
除此之外,Python還有開源、有良好的可擴(kuò)展性等特點(diǎn)?;谝陨线@些特性,Python廣泛應(yīng)用在人工智能、圖像處理、Web應(yīng)用開發(fā)、自動(dòng)化運(yùn)維、網(wǎng)絡(luò)爬蟲等領(lǐng)域。
Python版本的選擇
Python自發(fā)布以來,共歷經(jīng)了3個(gè)大的版本,分別是:
3個(gè)版本中,Python 3.0是一次重大的升級(jí),為了避免引入歷史包袱,Python3.0沒有考慮與Python 2.x的兼容,這也就導(dǎo)致很長(zhǎng)時(shí)間以來,Python2.x的用戶不愿意升級(jí)到 Python 3.0。
除此之外,造成目前這種狀況的另一個(gè)原因是,將現(xiàn)有應(yīng)用從Python 2.x遷移到Python 3.x是一項(xiàng)不小的挑戰(zhàn)。雖然有2to3(后續(xù)會(huì)介紹)之類的工具可以進(jìn)行代碼的自動(dòng)轉(zhuǎn)換,但無法保證轉(zhuǎn)換后的代碼100%正確。而且,如果不做人工修改的話,轉(zhuǎn)換后的代碼性能可能還不如轉(zhuǎn)換前。因此,將現(xiàn)有的復(fù)雜代碼庫遷移到Python 3.x上可能需要付出巨大的精力和成本,某些公司無法負(fù)擔(dān)這些成本。
目前,根據(jù)統(tǒng)計(jì)顯示,使用 Python 2.x的開發(fā)者仍占63.7%,而Python3.x的用戶占36.3%,由此可見,使用Python2.x的用戶還是占多數(shù)。在2014年,Python創(chuàng)始人宣布,將Python 2.7支持時(shí)間延長(zhǎng)到2020。
那么,初學(xué)者應(yīng)該選擇什么版本呢?這里建議大家選擇Python3.x版本,理由有以下幾點(diǎn):
·使用 Python 3.x已經(jīng)是大勢(shì)所趨目前,雖然使用Python 2.x的開發(fā)者居多,但使用Python 3.x的開發(fā)者正在迅速增加,如圖1所示:
圖1Python 3.x是大勢(shì)所趨
根據(jù)PEP-404這份文檔,
Python 2.x版本將不會(huì)再發(fā)布2.8版本,且未來非常重要的項(xiàng)目(如Django、Flask和 Numpy)可能都將放棄對(duì)2.x的支持,僅支持Python 3.x。因此,從長(zhǎng)遠(yuǎn)來看,學(xué)習(xí)Python 3.x只有好處。
?Python 3.x在Python 2.x的基礎(chǔ)上做了功能升級(jí)
Python 3.x對(duì) Python 2.x的標(biāo)準(zhǔn)庫進(jìn)行了一定程序的重新拆分和整合,比Python 2.x更容易理解,特別是在字符編碼方面。Python 2.x中對(duì)于中文字符串的支持性能不夠好,需要編寫單獨(dú)的代碼對(duì)中文進(jìn)行處理,否則不能正確顯示中文,而Python 3.x已經(jīng)將該問題成功解決了。
?Python 3.x和 Python 2.x思想基本是共通的
Python 3.x和 Python 2.x思想基本上是共通的,只有少量的語法差別,學(xué)會(huì)的Python 3.x,只要稍微花點(diǎn)時(shí)間學(xué)習(xí)Python2.x的語法,即可靈活運(yùn)用這兩個(gè)不同版本了。
注意,選擇Python 3.x也不是沒有弊端,很多擴(kuò)展庫的發(fā)行總是會(huì)滯后于Python的發(fā)行版本,甚至目前還有很多庫不支持Python 3.x。
因此,在選擇Python時(shí),一定要先考慮清楚自己的學(xué)習(xí)目的,比如說,打算做哪方面的開發(fā),此方向需要用法哪些擴(kuò)展庫,以及這些擴(kuò)展庫支持的最高Python版本等,明確這些問題后,再選擇適合自己的版本。
關(guān)于Python 3.x和 Python 2.x具體的區(qū)別,可閱讀《Python3和Python2區(qū)別》一節(jié)。
初學(xué)者應(yīng)該如何學(xué)習(xí)Python?
對(duì)于初學(xué)者來說,要做的就是專注于Python這一門語言,明確學(xué)習(xí)的重點(diǎn),把握好學(xué)習(xí)節(jié)奏,由淺入深循序漸進(jìn)地學(xué)習(xí)。根據(jù)本人多年的學(xué)習(xí)工作經(jīng)驗(yàn),把編程語言的學(xué)習(xí)分為以下3步,無論你是否有編程基礎(chǔ),都可以對(duì)照著來做。
1)多實(shí)踐,積累代碼量
任何一門編程語言,其囊括的知識(shí)面都是非常廣泛的,從基本的變量賦值、條件循環(huán)、到文件操作、并發(fā)編程等。但是,千萬不要等到把所有知識(shí)點(diǎn)都學(xué)完了才開始練習(xí),因?yàn)榈侥菚r(shí)你會(huì)發(fā)現(xiàn),前面好不容易記住的知識(shí)都忘記了。
學(xué)習(xí)編程,是十分講究實(shí)戰(zhàn)的,沒有捷徑可走,越早練習(xí),練得越多越勤,學(xué)習(xí)效果就越好。
2)時(shí)刻注意代碼規(guī)范
學(xué)習(xí)編程語言,在追求快和高效的同時(shí),每一種編程語言都有必要的編碼規(guī)范,一定不能忽略。
要想成為一名優(yōu)秀的程序員,從起步階段就要刻意地去培養(yǎng)自己的編程規(guī)范。例如,在剛開始編寫代碼時(shí),不要將原本多行的代碼全部寫到一行,也不要隨便用a、b、c等字母作為變量的名稱。
3)開發(fā)經(jīng)驗(yàn)是必不可少的
要想真正熟練地掌握Python(或者其它編程語言),擁有大中型產(chǎn)品的開發(fā)經(jīng)驗(yàn)是必不可少的,它會(huì)讓你站得更高,望得更遠(yuǎn)。
例如,我們幾乎每天都會(huì)用搜索引擎,但你了解一個(gè)搜索引擎的服務(wù)器端實(shí)現(xiàn)
例如,我們幾乎每天都會(huì)用搜索引擎,但你了解一個(gè)搜索引擎的服務(wù)器端實(shí)現(xiàn)嗎?這是一個(gè)典型的面向?qū)ο笤O(shè)計(jì),需要定義一系列相關(guān)的類和函數(shù),還要從產(chǎn)品需求、代碼復(fù)雜度、效率以及可讀性等多個(gè)方面綜合考量,同時(shí)在上線后還要進(jìn)行各種優(yōu)化等。
為了輔助大家更好地學(xué)習(xí)Python,這里準(zhǔn)備了一章Python學(xué)習(xí)的知識(shí)圖譜,涵蓋了Python的核心知識(shí)。
所有的python學(xué)習(xí)資料已經(jīng)給大家打包好~~~
