Python如何自學(xué)

首先就要了解什么是Python

Python由荷蘭數(shù)學(xué)和計算機科學(xué)研究學(xué)會的Guido van Rossum 于1990 年代初設(shè)計,作為一門叫做ABC語言的替代品。Python提供了高效的高級數(shù)據(jù)結(jié)構(gòu),還能簡單有效地面向?qū)ο缶幊獭ython語法和動態(tài)類型戳粒,以及解釋型語言的本質(zhì),使它成為多數(shù)平臺上寫腳本和快速開發(fā)應(yīng)用的編程語言虫啥,? 隨著版本的不斷更新和語言新功能的添加享郊,逐漸被用于獨立的、大型項目的開發(fā)孝鹊。?

Python解釋器易于擴展炊琉,可以使用C或C++(或者其他可以通過C調(diào)用的語言)擴展新的功能和數(shù)據(jù)類型。 Python 也可用于可定制化軟件中的擴展程序語言。Python豐富的標(biāo)準(zhǔn)庫苔咪,提供了適用于各個主要系統(tǒng)平臺的源碼或機器碼锰悼。?

優(yōu)點

簡單:Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣团赏。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身箕般。

易學(xué):Python極其容易上手,因為Python有極其簡單的說明文檔?舔清。

易讀丝里、易維護:風(fēng)格清晰劃一、強制縮進

用途廣泛

速度快:Python 的底層是用 C 語言寫的体谒,很多標(biāo)準(zhǔn)庫和第三方庫也都是用 C 寫的杯聚,運行速度非常快抒痒。

免費幌绍、開源:Python是FLOSS(自由/開放源碼軟件)之一。使用者可以自由地發(fā)布這個軟件的拷貝故响、閱讀它的源代碼傀广、對它做改動、把它的一部分用于新的自由軟件中彩届。FLOSS是基于一個團體分享知識的概念伪冰。

高層語言:用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細節(jié)。

可移植性:由于它的開源本質(zhì)樟蠕,Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上)贮聂。這些平臺包括Linux、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++寫的程序可以從源文件(即C或C++語言)轉(zhuǎn)換到一個你的計算機使用的語言(二進制代碼符衔,即0和1)。這個過程通過編譯器和不同的標(biāo)記糟袁、選項完成判族。

運行程序的時候,連接/轉(zhuǎn)載器軟件把你的程序從硬盤復(fù)制到內(nèi)存中并且運行系吭。而Python語言寫的程序不需要編譯成二進制代碼五嫂。你可以直接從源代碼運行 程序。

在計算機內(nèi)部肯尺,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式沃缘,然后再把它翻譯成計算機使用的機器語言并運行。這使得使用Python更加簡單则吟。也使得Python程序更加易于移植槐臀。

面向?qū)ο?/a>:Python既支持面向過程的編程也支持面向?qū)ο蟮木幊獭T凇懊嫦蜻^程”的語言中氓仲,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來的水慨。在“面向?qū)ο?/a>”的語言中,程序是由數(shù)據(jù)和功能組合而成的對象構(gòu)建起來的敬扛。

Python是完全面向?qū)ο?/a>的語言晰洒。函數(shù)、模塊啥箭、數(shù)字谍珊、字符串都是對象。并且完全支持繼承急侥、重載砌滞、派生、多繼承坏怪,有益于增強源代碼的復(fù)用性贝润。Python支持重載運算符和動態(tài)類型。相對于Lisp這種傳統(tǒng)的函數(shù)式編程語言铝宵,Python對函數(shù)式設(shè)計只提供了有限的支持打掘。有兩個標(biāo)準(zhǔn)庫(functools, itertools)提供了Haskell和Standard ML中久經(jīng)考驗的函數(shù)式程序設(shè)計工具。

可擴展性、可擴充性:如果需要一段關(guān)鍵代碼運行得更快或者希望某些算法不公開胧卤,可以部分程序用C或C++編寫唯绍,然后在Python程序中使用它們。

Python本身被設(shè)計為可擴充的枝誊。并非所有的特性和功能都集成到語言核心况芒。Python提供了豐富的API和工具,以便程序員能夠輕松地使用C語言叶撒、C++绝骚、Cython來編寫擴充模塊。Python編譯器本身也可以被集成到其它需要腳本語言的程序內(nèi)祠够。因此压汪,很多人還把Python作為一種“膠水語言”(glue language)使用。使用Python將其他語言編寫的程序進行集成和封裝古瓤。在Google內(nèi)部的很多項目止剖,例如Google Engine使用C++編寫性能要求極高的部分,然后用Python或Java/Go調(diào)用相應(yīng)的模塊落君〈┫悖《Python技術(shù)手冊》的作者馬特利(Alex Martelli)說:“這很難講,不過绎速,2004 年皮获,Python 已在Google?內(nèi)部使用,Google 召募許多 Python 高手纹冤,但在這之前就已決定使用Python洒宝,他們的目的是 Python where we can, C++ where we must,在操控硬件的場合使用C++萌京,在快速開發(fā)時候使用 Python雁歌。”

可嵌入性:可以把Python嵌入C/C++程序知残,從而向程序用戶提供腳本功能靠瞎。

豐富的庫:Python標(biāo)準(zhǔn)庫確實很龐大。它可以幫助處理各種工作橡庞,包括正則表達式较坛、文檔生成印蔗、單元測試扒最、線程、數(shù)據(jù)庫华嘹、網(wǎng)頁瀏覽器吧趣、CGI、FTP、電子郵件强挫、XML岔霸、XML-RPC、HTML俯渤、WAV文件呆细、密碼系統(tǒng)、GUI(圖形用戶界面)八匠、Tk和其他與系統(tǒng)有關(guān)的操作絮爷。這被稱作Python的“功能齊全”理念。除了標(biāo)準(zhǔn)庫以外梨树,還有許多其他高質(zhì)量的庫坑夯,如wxPython、Twisted和Python圖像庫等等抡四。


規(guī)范的代碼:Python采用強制縮進的方式使得代碼具有較好可讀性柜蜈。而Python語言寫的程序不需要編譯成二進制代碼。Python的作者設(shè)計限制性很強的語法指巡,使得不好的編程習(xí)慣(例如if語句的下一行不向右縮進)都不能通過編譯淑履。其中很重要的一項就是Python的縮進規(guī)則。一個和其他大多數(shù)語言(如C)的區(qū)別就是厌处,一個模塊的界限鳖谈,完全是由每行的首字符在這一行的位置來決定(而C語言是用一對花括號{}來明確的定出模塊的邊界,與字符的位置毫無關(guān)系)阔涉。通過強制程序員們縮進(包括if缆娃,for和函數(shù)定義等所有需要使用模塊的地方),Python確實使得程序更加清晰和美觀瑰排。

高級動態(tài)編程:雖然Python可能被粗略地分類為“腳本語言”(script language)贯要,但實際上一些大規(guī)模軟件開發(fā)計劃例如ZopeMnetBitTorrent椭住,Google也廣泛地使用它崇渗。Python的支持者較喜歡稱它為一種高級動態(tài)編程語言,原因是“腳本語言”泛指僅作簡單程序設(shè)計任務(wù)的語言京郑,如shellscript宅广、VBScript等只能處理簡單任務(wù)的編程語言,并不能與Python相提并論些举。

做科學(xué)計算優(yōu)點多:說起科學(xué)計算跟狱,首先會被提到的可能是MATLAB。除了MATLAB的一些專業(yè)性很強的工具箱還無法被替代之外户魏,MATLAB的大部分常用功能都可以在Python世界中找到相應(yīng)的擴展庫驶臊。和MATLAB相比挪挤,用Python做科學(xué)計算有如下優(yōu)點:

● 首先,MATLAB是一款商用軟件关翎,并且價格不菲扛门。而Python完全免費,眾多開源的科學(xué)計算庫都提供了Python的調(diào)用接口纵寝。用戶可以在任何計算機上免費安裝Python及其絕大多數(shù)擴展庫论寨。

● 其次,與MATLAB相比爽茴,Python是一門更易學(xué)政基、更嚴(yán)謹(jǐn)?shù)某绦蛟O(shè)計語言。它能讓用戶編寫出更易讀闹啦、易維護的代碼沮明。

● 最后,MATLAB主要專注于工程和科學(xué)計算窍奋。然而即使在計算領(lǐng)域荐健,也經(jīng)常會遇到文件管理、界面設(shè)計琳袄、網(wǎng)絡(luò)通信等各種需求江场。而Python有著豐富的擴展庫,可以輕易完成各種高級任務(wù)窖逗,開發(fā)者可以用Python實現(xiàn)完整應(yīng)用程序所需的各種功能址否。

缺點

單行語句和命令行輸出問題:很多時候不能將程序連寫成一行,如import sys;for i in sys.path:print i碎紊。而perl和awk就無此限制佑附,可以較為方便的在shell下完成簡單程序,不需要如Python一樣仗考,必須將程序?qū)懭胍粋€.py文件音同。

給初學(xué)者帶來困惑:獨特的語法這也許不應(yīng)該被稱為局限秃嗜,但是它用縮進來區(qū)分語句關(guān)系的方式還是給很多初學(xué)者帶來了困惑权均。即便是很有經(jīng)驗的Python程序員,也可能陷入陷阱當(dāng)中锅锨。

運行速度慢:這里是指與C和C++相比叽赊。Python開發(fā)人員盡量避開不成熟或者不重要的優(yōu)化。一些針對非重要部位的加快運行速度的補丁通常不會被合并到Python內(nèi)必搞。所以很多人認(rèn)為Python很慢必指。不過,根據(jù)二八定律顾画,大多數(shù)程序?qū)λ俣纫蟛桓呷〗佟T谀承\行速度要求很高的情況,Python設(shè)計師傾向于使用JIT技術(shù)研侣,或者用使用C/C++語言改寫這部分程序谱邪。可用的JIT技術(shù)是PyPy庶诡。

和其他語言區(qū)別

對于一個特定的問題惦银,只要有一種最好的方法來解決

這在由Tim Peters寫的Python格言(稱為The Zen of Python)里面表述為:There should be one-- and preferably only one --obvious way to do it. 這正好和Perl語言(另一種功能類似的高級動態(tài)語言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。

Python的設(shè)計哲學(xué)是“優(yōu)雅”末誓、“明確”扯俱、“簡單”。因此喇澡,Perl語言中“總是有多種方法來做同一件事”的理念在Python開發(fā)者中通常是難以忍受的迅栅。Python開發(fā)者的哲學(xué)是“用一種方法,最好是只有一種方法來做一件事”晴玖。在設(shè)計Python語言時读存,如果面臨多種選擇,Python開發(fā)者一般會拒絕花俏的語法呕屎,而選擇明確的沒有或者很少有歧義的語法让簿。由于這種設(shè)計觀念的差異,Python源代碼通常被認(rèn)為比Perl具備更好的可讀性秀睛,并且能夠支撐大規(guī)模的軟件開發(fā)尔当。這些準(zhǔn)則被稱為Python格言。在Python解釋器內(nèi)運行import this可以獲得完整的列表蹂安。

更高級的Virtual Machine

Python在執(zhí)行時椭迎,首先會將.py文件中的源代碼編譯成Python的byte code(字節(jié)碼),然后再由Python Virtual Machine(Python虛擬機)來執(zhí)行這些編譯好的byte code田盈。這種機制的基本思想跟Java侠碧,.NET是一致的。然而缠黍,Python Virtual Machine與Java或.NET的Virtual Machine不同的是弄兜,Python的Virtual Machine是一種更高級的Virtual Machine。這里的高級并不是通常意義上的高級瓷式,不是說Python的Virtual Machine比Java或.NET的功能更強大替饿,而是說和Java 或.NET相比,Python的Virtual Machine距離真實機器的距離更遠贸典∈勇或者可以這么說,Python的Virtual Machine是一種抽象層次更高的Virtual Machine廊驼【莨基于C的Python編譯出的字節(jié)碼文件惋砂,通常是.pyc格式。除此之外绳锅,Python還可以以交互模式運行西饵,比如主流操作系統(tǒng)Unix/Linux、Mac鳞芙、Windows都可以直接在命令模式下直接運行Python交互環(huán)境眷柔。直接下達操作指令即可實現(xiàn)交互操作。

推薦一下【尚學(xué)堂】Python400集

循序漸進原朝,由淺入深只要能堅持驯嘱,跟著老師的思路走

就可以學(xué)會。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末喳坠,一起剝皮案震驚了整個濱河市鞠评,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌壕鹉,老刑警劉巖谢澈,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異御板,居然都是意外死亡锥忿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門怠肋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敬鬓,“玉大人,你說我怎么就攤上這事笙各《ご穑” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵杈抢,是天一觀的道長数尿。 經(jīng)常有香客問我,道長惶楼,這世上最難降的妖魔是什么右蹦? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮歼捐,結(jié)果婚禮上何陆,老公的妹妹穿的比我還像新娘。我一直安慰自己豹储,他們只是感情好贷盲,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著剥扣,像睡著了一般巩剖。 火紅的嫁衣襯著肌膚如雪铝穷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天佳魔,我揣著相機與錄音曙聂,去河邊找鬼。 笑死吃引,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的刽锤。 我是一名探鬼主播镊尺,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼并思!你這毒婦竟也來了庐氮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤宋彼,失蹤者是張志新(化名)和其女友劉穎弄砍,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體输涕,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡音婶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了莱坎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衣式。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖檐什,靈堂內(nèi)的尸體忽然破棺而出碴卧,到底是詐尸還是另有隱情,我是刑警寧澤乃正,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布住册,位于F島的核電站,受9級特大地震影響瓮具,放射性物質(zhì)發(fā)生泄漏荧飞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一名党、第九天 我趴在偏房一處隱蔽的房頂上張望垢箕。 院中可真熱鬧,春花似錦兑巾、人聲如沸条获。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帅掘。三九已至委煤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間修档,已是汗流浹背碧绞。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吱窝,地道東北人讥邻。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像院峡,于是被迫代替她去往敵國和親兴使。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 人生苦短照激,我用Python Python的創(chuàng)始人為荷蘭人吉多·范羅蘇姆[https://baike.baidu.c...
    我愛大西瓜_閱讀 196評論 0 0
  • 姓名:常呈祥 學(xué)號:20181213908 學(xué)院:電子工程學(xué)院 轉(zhuǎn)自https://baike.baidu.com...
    時光不老_9fec閱讀 186評論 0 0
  • 自從20世紀(jì)90年代初Python語言誕生至今发魄,它已被逐漸廣泛應(yīng)用于系統(tǒng)管理任務(wù)的處理和Web[https://b...
    柊鉉老師閱讀 348評論 0 0
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭俩垃,有人歡樂有人憂愁励幼,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,536評論 28 53
  • 首先介紹下自己的背景: 我11年左右入市到現(xiàn)在,也差不多有4年時間跃闹,看過一些關(guān)于股票投資的書籍六水,對于巴菲特等股神的...
    瞎投資閱讀 5,727評論 3 8