Python數(shù)據(jù)分析與實踐- 課件 第一章 Python簡介_第1頁
Python數(shù)據(jù)分析與實踐- 課件 第一章 Python簡介_第2頁
Python數(shù)據(jù)分析與實踐- 課件 第一章 Python簡介_第3頁
Python數(shù)據(jù)分析與實踐- 課件 第一章 Python簡介_第4頁
Python數(shù)據(jù)分析與實踐- 課件 第一章 Python簡介_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

Python數(shù)據(jù)分析與實踐12023/10/28第一章Python簡介本章學習目標:了解python語言發(fā)展的歷史及其特點深刻了解python2和python3的區(qū)別熟練掌握python中的IDLE的編程特點熟練的掌握python的開發(fā)環(huán)境32023/10/28

Python的作者,荷蘭人GuidovonRossum。1982年,Guido從阿姆斯特丹大學獲得了數(shù)學和計算機碩士學位。然而,盡管他算得上是一位數(shù)學家,但他更加享受計算機帶來的樂趣。用他的話說,盡管擁有數(shù)學和計算機雙料碩士,他總趨向于做計算機相關的工作,并熱衷于做任何和編程相關的活兒。Python起源與發(fā)展

最初的Python完全由Guido本人開發(fā)。Python得到Guido同事的歡迎,他們迅速的反饋使用意見,并參與到Python的改進。Guido和一些同事構成Python的核心團隊。他們將自己大部分的業(yè)余時間用于hackPython。隨后,Python拓展到研究所之外。Python將許多機器層面上的細節(jié)隱藏,交給編譯器處理,并凸顯出邏輯層面的編程思考。Python程序員可以花更多的時間用于思考程序的邏輯,而不是具體的實現(xiàn)細節(jié)。這一特征吸引了廣大的程序員。Python開始流行。

到今天,Python的框架已經(jīng)確立。Python語言以對象為核心組織代碼,支持多種編程范式,采用動態(tài)類型,自動進行內(nèi)存回收。Python支持解釋運行,并能調(diào)用C庫進行拓展。Python有強大的標準庫。由于標準庫的體系已經(jīng)穩(wěn)定,所以Python的生態(tài)系統(tǒng)開始拓展到第三方包。這些包,如Django、web.py、wxpython、numpy、matplotlib、PIL,將Python升級成了物種豐富的熱帶雨林。Python崇尚優(yōu)美、清晰、簡單,是一個優(yōu)秀并廣泛使用的語言。Python在TIOBE排行榜中排行第八,它是Google的第三大開發(fā)語言,Dropbox的基礎語言,豆瓣的服務器語言。python語言的優(yōu)點:⑴Python非常簡單,適合閱讀。閱讀一個良好的Python程序就像是在讀英語一樣,盡管這個英語的要求非常嚴格。Python的這種偽代碼本質(zhì)是它最大的優(yōu)點之一,它使用戶能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身。⑵易學。python雖然是用c語言寫的,但是它擯棄了c中非常復雜的指針,簡化了python的語法。⑶Python是FLOSS(自由/開放源碼軟件)之一。簡單地說,用戶可以自由地發(fā)布這個軟件的副本、閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中。72023/10/28⑷可移植性:由于開源本質(zhì),Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上)。如果用戶小心地避免使用依賴于系統(tǒng)的特性,那么所有的Python程序無需修改就可以在下述任何平臺上面運行。這些平臺包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2以及Google基于linux開發(fā)的Android平臺!⑸Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計算機使用的機器語言并運行。因此,由于用戶不再需要擔心如何編譯程序,如何確保連接轉(zhuǎn)載正確的庫等,所有這一切使得使用Python更加簡單。82023/10/28⑹Python既支持面向過程的函數(shù)編程,也支持面向?qū)ο蟮某橄缶幊?。在面向過程的語言中,程序是由過程或僅僅是可重用代碼的函數(shù)構建起來的;在面向?qū)ο蟮恼Z言中,程序是由數(shù)據(jù)和功能組合而成的對象構建起來的。與其他主要的語言(如C++和Java)相比,Python以一種非常強大又簡單的方式實現(xiàn)面向?qū)ο缶幊?。⑺可擴展性和可嵌入性:如果用戶需要讓自己的一段關鍵代碼運行得更快或者希望某些算法不公開,可以把部分程序用C或C++編寫,然后在自己的Python程序中使用它們。用戶可以把Python嵌入自己的C/C++程序,從而向程序用戶提供腳本功能。9⑻Python有很龐大的標準庫。它可以幫助用戶處理各種工作,包括文檔生成、單元測試、線程、數(shù)據(jù)庫、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統(tǒng)、GUI(圖形用戶界面)、Tk和其他與系統(tǒng)有關的操作。記住,只要安裝了Python,所有這些功能都是可用的。除了標準庫以外,還有許多其他高質(zhì)量的庫,如wxPython、Twisted和Python圖像庫等等。102023/10/28python語言的缺點:(2)運行速度:如果有速度要求,用C++改寫關鍵部分吧。不過對于用戶而言,機器上的運行速度是可以忽略的。因為用戶根本感覺不出來這種速度的差異。(3)Python的開源性使得Python語言不能加密。(4)Python構架選擇太多(沒有像C#這樣的官方.NET構架,也沒有像Ruby由于歷史較短,構架開發(fā)的相對集中)。不過這也從另一個側(cè)面說明,Python比較優(yōu)秀,吸引的人才多,項目也多。(1)在很多時候不能將Python程序連寫成一行,例如“importsys;foriinsys.path:printi”1.1.2Python2與Python3的區(qū)別1.在Python3中,print不再是語句,而是函數(shù),比如原來是print'abc'現(xiàn)在是print('abc'),但是在Python2.6以上版本可以使用from__future__importprint_function來實現(xiàn)相同的功能。2.在Python3中,沒有舊式類,只有新式類,也就是說不用再像這樣classFoobar(object):pass顯式地子類化object,但是最好還是加上“.”,主要區(qū)別在于old-style是classtype類型,而new-style是type類型。3.原來1/2(兩個整數(shù)相除)結(jié)果是0,現(xiàn)在是0.5了。python2.2+以上都可以使用from__future__importdivision實現(xiàn)改特性,同時注意“//”取代了之前的“/”運算。122023/10/284.新的字符串格式化方法format()取代%。從python2.6以上版本開始在str和unicode中有該方法,同時python3依然支持%算符5.xrange重命名為range,同時更改的還有一系列內(nèi)置函數(shù)及方法,都返回迭代器對象,而不是列表或者元組,比如filter(),map(),dict.items等6.!=取代<>:python2也很少有人用<>,所以不算什么修改。132023/10/288.long重命名為int:python3徹底廢棄了long+int(雙整數(shù))實現(xiàn)的方法,統(tǒng)一為int,支持高精度整數(shù)運算。9.“exceptException,e”變成“except(Exception)ase”:只有python2.5及以下版本不支持該語法。python2.6是支持的.不算新功能。10.exec變成函數(shù),類似print()的變化,之前是語句。142023/10/28(1)主要是類庫的變化,組織結(jié)構變了一些,但功能沒變,例如urlparse→urllib.parse這樣的變化。(2)對bytes和原生unicode字符串的支持,刪除了unicode對象,str為原生unicode字符串,bytes代替了之前的str,這是最核心的。152023/10/281.2Python的環(huán)境搭建1、首先進入網(wǎng)站下載:(/downloads/),進入之后如下圖,選擇圖中紅色圈中區(qū)域進行下載。162023/10/282、下載完成后如下圖所示172023/10/283、雙擊exe文件進行安裝,如下圖,并按照圈中區(qū)域進行設置,切記要勾選打鉤的框,然后再點擊Customizeinstallation進入到下一步。184、對于上圖中,可以通過Browse進行自定義安裝路徑,也可以直接點擊Install進行安裝,點擊install后便可以完成安裝了。195、然后進入高級系統(tǒng)設置,如下,點擊環(huán)境變量,然后在環(huán)境變量里系統(tǒng)變量中,找到path,選擇編輯,在變量值后面添加之前的復制的Python的位置,在這前面加上英文的分號,如下圖。206.剩下就是檢驗Python是否裝好。同時按住win鍵和R鍵,點擊確定,進入命令行;在命令行輸入python,出現(xiàn)如下的Python相關信息,就表示裝好了Python3.5.1。211.3開始使用PythonIDLE>>>被叫做Python命令提示符(prompt),此時Python在等待你輸入代碼。你現(xiàn)在可以輸入一行Python代碼,Python就會執(zhí)行該代碼。這種模式叫做Python交互模式(interactivemode),因為Python在等待你輸入代碼,然后執(zhí)行。例如,可以輸入一個表達式,讓Python進行計算。例如,要計算1+1,可以在命令提示符后面輸入1+1,然后按enter:>>>1+1按下enter之后,Python就會輸出計算結(jié)果,這里是2。要退出Python交互模式,可以在Python命令提示符后,輸入exit():>>>exit()也可以輸入quit():>>>quit()

1.3.1交互方式221.3開始使用PythonIDLE另外,還可以輸入一個EOF(文件尾,endoffile)字符,在Windows上是Ctrl+Z,在Linux上是Ctrl+D。對于以后的代碼,如果出現(xiàn)以>>>開頭的行,就代表這行代碼是在Python交互模式下輸入的。在Python交互模式下輸入代碼和運行.py文件是有區(qū)別的。在Python命令行,Python會等待用戶一行一行地輸入代碼;但運行.py文件時用戶沒有這個機會,而且一般運行完一個.py文件就會立即退出(這樣用戶就不能看到程序輸出了什么)。關于Python交互模式還有更多的細節(jié),這將在以后討論。1.3.2Python的集成開發(fā)環(huán)境除了官網(wǎng)中下載的python自帶的IDLE之外,還有幾款風格功能各異的IDE(集成開發(fā)環(huán)境)。下面分別介紹。1.3.2Python的集成開發(fā)環(huán)境1.EclipsewithPyDev:/Eclipse+PyDev插件,很適合開發(fā)PythonWeb應用,其特征包括自動代碼完成、語法高亮、代碼分析、調(diào)試器、以及內(nèi)置的交互瀏覽器。1.3.2Python的集成開發(fā)環(huán)境2.KomodoEdit:/komodo-edit/KomodoEdit是一個免費的、開源的、專業(yè)的PythonIDE,其特征是非菜單的操作方式,開發(fā)高效。1.3.2Python的集成開發(fā)環(huán)境3.Vim:/download.phpVim是一個簡潔、高效的工具,也適合做Python開發(fā)。1.3.2Python的集成開發(fā)環(huán)境4.PyCharmPyCharm是由JetBrains打造的一款PythonIDE。PyCharm具備一般PythonIDE的功能,比如:調(diào)試、語法高亮、項目管理、代碼跳轉(zhuǎn)、智能提示、自動完成、單元測試、版本控制等。另外,PyCharm還提供了一些很好的功能用于Django開發(fā),同時支持GoogleAppEngine,更酷的是,PyCharm支持IronPython。PyCharm官方下載地址:/pycharm/download/1.3.2Python的集成開發(fā)環(huán)境4.PyCharm1.3.2Python的集成開發(fā)環(huán)境5.SublinmeText1.3.2Python的集成開發(fā)環(huán)境5.SublinmeTextSublimeText具有漂亮的開發(fā)界面(見圖1.11)和強大的功能,例如代碼縮略圖、Python的插件和代碼段等,還可以自定義鍵綁定、菜單和工具欄。SublimeText的主要功能包括拼寫檢查、書簽、完整的PythonAPI、Goto功能、即時項目切換、多選擇、多窗口等。SublimeText是一個跨平臺的編輯器,同時支持Windows、Linux、MacOSX等操作系統(tǒng)。1.3.2Python的集成開發(fā)環(huán)境5.SublinmeText使用SublimeText2的插件擴展功能,用戶可以輕松地打造一款不錯的PythonIDE,以下推薦幾款插件(用戶可以找到更多)。?CodeIntel:自動補全+成員/方法提示(強烈推薦);?SublimeREPL:用于運行和調(diào)試一些需要交互的程序;?BracketHighlighter:括號匹配及高亮顯示;?SublimeLinter:代碼pep8格式檢查。321.縮進每級縮進用4個空格;連續(xù)行的折疊元素應該對齊。1.5代碼風格2.制表符還是空格空格是最優(yōu)先的縮進方式,當已經(jīng)使用制表符是,應該保持一致性,繼續(xù)使用制表符。Python3不允許混合使用制表符和空格來縮進。Python2的代碼中混合使用制表符和空格的縮進,應該轉(zhuǎn)化為完全使用空格。3.最大行長度限制所有行最多79個字符。下垂的長塊結(jié)構限制為更少的文本(文檔字符串或注釋),行的長度應該限制在72個字符。334.換行應該在二元操作符前面還是后面幾十年來推薦的風格是在二元操作符后換行。但這會通過兩種方式影響可讀性:操作符往往分散在屏幕的不同的列上,并且每個操作符都被移動到遠離其操作數(shù)。1.5代碼風格5.空行用兩行空行分割頂層函數(shù)和類的定義。類內(nèi)方法的定義用單個空行分割。額外的空行可被用于(保守的(sparingly))分割一組相關函數(shù)(groupsofrelatedfunctions)。在一組相關的單句中間可以省略空行.(例如.一組啞元(asetofdummyimplementations))。在函數(shù)中使用空行時,請謹慎的用于表示一個邏輯段落(indicatelogicalsections)。346.源文件編碼Python核心發(fā)布中的代碼應該始終使用UTF-8(或Python2中用ASCII)。文件使用ASCII(Python2中)或UTF-8(Python3中)不應有編碼聲明。在標準庫中,非默認編碼僅用于測試目的或注釋或文檔字符串需要提及包含非ASCII字符的作者名;否則,使用\x,\u,\U,或\N是字符串中包含非ASCII數(shù)據(jù)的首先方式。1.5代碼風格7.導入#通常應該在單獨的行中導入(Imports)。importosimport

sys#這樣也是可以的fromsubprocessimportPopen,PIPEImports通常被放置在文件的頂部,僅在模塊注釋和文檔字符串之后,在模塊的全局變量和常量之前。358.字符串引號Python中,單引號字符串和雙引號字符串是一樣的,本PEP不建議如此,建議選擇一個并堅持下去。當一個字符串包含單引號字符或雙引號字符時,使用另一種字符串引號來避免字符串中使用反斜杠。這可以提高可讀性。三引號字符串,總是使用雙引號字符,與PEP257文檔字符串規(guī)范保持一致。1.5代碼風格361.5代碼風格9.空格避免尾隨空格。因為它通常是無形的,它可能會讓人很困惑:如一個反斜杠,后跟一個空格和一個換行符不算作一行延續(xù)標記。有些編輯器不保護它,并且許多項目(如CPython本身)導向鉤子,拒絕它。始終在這些二元運算符兩邊放置一個空格:賦值(=),比較(==,<,>,!=,<>,<=,>=,in,notin,is,isnot),布爾運算(and,or,not)。如果使用了不同優(yōu)先級的操作符,在低優(yōu)先級操作符周圍增加空格(一個或多個)。不要使用多于一個空格,二元運算符兩側(cè)空格數(shù)量相等。371.5代碼風格10.注釋同代碼不一致的注釋比沒注釋更差.當代碼修改時,始終優(yōu)先更新注釋!注釋應該是完整的句子.如果注釋是一個短語或句子,首字母應該大寫,除非他是一個以小寫字母開頭的標識符(永遠不要修改標識符的大小寫)。如果注釋很短,最好省略末尾的句號。注釋塊通常由一個或多個由完整句子構成的段落組成,每個句子都應該以句號結(jié)尾。11.注釋塊注釋塊通常應用于跟隨著一些(或者全部)代碼并和這些代碼有著相同的縮進層次.注釋塊中每行以'#'和一個空格開始(除非他是注釋內(nèi)的縮進文本)。注釋塊內(nèi)的段落以僅含單個'#'的行分割。12.行內(nèi)注釋行內(nèi)注釋應該謹慎使用。13.文檔字符串應該一直遵守在PEP257中編寫好的文檔字符串(又名"docstrings")的約定,""""""DocumentationStrings--文檔化字符;1.5代碼風格14.命名約定Python庫的命名約定有點混亂,所以我們將永遠不能使之變得完全一致---不過還是有公認的命名規(guī)范的。15.根本原則用戶可見的API的公開部分的名稱,應該體現(xiàn)用法而不是實現(xiàn)。1.5代碼風格16.描述:命名風格有許多不同的命名風格.以下的有助于辨認正在使用的命名風格,獨立于它們的作用。以下的命名風格是眾所周知的:?b(單個小寫字母)?B(單個大寫字母)?小寫串如:getname?帶下劃的小寫串如:_getname,lower_case_with_underscores?大寫串如:GETNAME?帶下劃的大寫串如:_GETNAME,UPPER_CASE_WITH_UNDERSCORES?CapitalizedWords(首字母大寫單詞串)(或CapWords,CamelCase/駝峰命名法--這樣命名是由于它的字母錯落有致的樣子而來的.這有時也被當作StudlyCaps。如:GetName。1.5代碼風格注意:當CapWords中使用縮寫,大寫所有的縮寫字母。因此HTTPServerError優(yōu)于HttpServerError。?mixedCase(混合大小寫串)(與首字母大寫串不同之處在于第一個字符是小寫如:getName)?Capitalized_Words_With_Underscores(帶下劃線的首字母大寫串)(丑陋!)1.5代碼風格a.應避免的名字永遠不要用字符'l'(小寫字母el(就是讀音,下同)),'O'(大寫字母oh),或'I'(大寫字母eye)作為單字符的變量名。在某些字體中,這些字符不能與數(shù)字1和0分開.當想要使用'l'時,用'L'代替它。b.包和模塊名模塊應該是簡短的,全小寫的名字.可以在模塊名中使用下劃線來提高可讀性。Python包名也應該是簡短的,全小寫的名字,不鼓勵使用下劃線。當一個用C或C++寫的擴展模塊有一個伴隨的Python模塊,這個Python模塊提供了一個更高層(例如,更面向?qū)ο?的接口時,C/C++模塊有一個前導下劃線(如:_socket)1.5代碼風格c.類名幾乎沒有例外,類名總是使用首字母大寫單詞串(CapWords)的約定。d.異常名因為異常應該是一個類,類的規(guī)范也適用這里。無論怎樣,你應該在異常名中使用后綴"Error"(如果實際是一個錯誤)。似乎內(nèi)建(擴展)的模塊使用"error"(例如:os.error),而Python模塊通常用"Error"(例如:xdrlib.Error)。1.5代碼風格e.全局變量名(讓我們希望這些變量打算只被用于模塊內(nèi)部)這些約定與那些用于函數(shù)的約定差不多。被設計可以通過"fromMimport*"來使用的那些模塊,應該使用all機制防止導出全局變量,或使用加前綴的舊規(guī)則,在那些不想被導入的全局變量(還有內(nèi)部函數(shù)和類)前加一個下劃線。f.函數(shù)名函數(shù)名應該為小寫,可以將單詞用下劃線分開以增加可讀性。mixedCase混合大小寫僅被允許用于這種風格已經(jīng)占優(yōu)勢的上下文(如:threading.py)以便保持向后兼容。1.5代碼風格g.函數(shù)和方法參數(shù)總是使用self做實例方法的第一個參數(shù)??偸鞘褂胏ls做類方法的第一個參數(shù)。如果一個函數(shù)的參數(shù)名與保留關鍵字沖突,最好是為參數(shù)名添加一個后置下劃線而不是使用縮寫或錯誤的拼寫。因此class_比clss好。(也許使用同義詞來避免更好。)。h.方法名和實例變量大體上和函數(shù)相同:使用小寫單詞,必要時用下劃線分隔增加可讀性.僅為不打算作為類的公共接口的內(nèi)部方法和實例變量使用一個前導下劃線.為了避免和子類命名沖突,使用兩個前導下劃線調(diào)用Python的名稱改編規(guī)則。Python用類名改編這些名字:如果類Foo有一個屬性名為a,通過Foo.a不能訪問。(執(zhí)著的用戶可以通過調(diào)用Foo._Foo__a來訪問。)通常,兩個前導下劃線僅用來避免與子類的屬性名沖突。1.5代碼風格i.常量常量通常在模塊級別定義,并且所有的字母都是大寫,單詞用下劃線分開。例如:MAX_OVERFLOW和TOTAL。j.繼承的設計確定類的方法和實例變量(統(tǒng)稱為:“屬性”)是否公開。如果有疑問,選擇非公開;之后把其變成公開比把一個公開屬性改成非公開要容易。公開屬性是那些你期望與你的類不相關的客戶使用的,根據(jù)你的承諾來避免向后不兼容的變更。非公開屬性是那些不打算被第三方使用的;你不保證非公開屬性不會改變甚至被刪除。1.6使用幫助1.PythonManuals自帶CHM格式的PythonManuals存放在\Python<x.x>\Doc\目錄下??梢栽贗DLE界面下按F1鍵或點擊help選項下PythonDocs標簽打開;也可以在通過“開始→pythonx.x→PythonManuals”打開。2.ModuleDocs包含了python中所有內(nèi)置的和已經(jīng)安裝的第三方Modules文檔信息。單擊“開始”→pythonx.x→ModuleDocs,出現(xiàn)pydoc程序界面,用戶可以在搜索框直接查找需要的內(nèi)容。用戶也可以點擊OpenBrowser建立本地臨時的WebServer,瀏覽網(wǎng)頁版的文檔信息。需要關閉時,點擊“QuitServing”即可。1.6使用幫助2.ModuleDocs利用pydoc手工在指定端口打開WebDocumentationServer,代碼為"python-mpydoc-p6789"(表示打開pydoc模塊來查看Python文檔,并在6789端口上啟動WebServer)。然后訪問“http://localhost:6789/”,可以看到所有已經(jīng)安裝的Modules文檔信息。當需要關閉時,按Ctrl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論