17組:卞小倩、張艷秀、李洪曼、邊宇
18組:王倩、鄧彩鳳、閆榮榮
Python
一、Python簡介
Python是著名的“龜叔”Guido van Rossum在1989年圣誕節期間,為了打發無聊的圣誕節而編寫的一個編程語言。Python是純粹的自由軟件,源代碼和解釋器CPython遵循 GPL(GNU?General Public License)許可。Python語法簡潔清晰,特色之一是強制用空白符(white space)作為語句縮進。
Python具有豐富和強大的庫。它常被昵稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯結在一起。
二、Python安裝
目前,Python有兩個版本,一個是2.x版,一個是3.x版,這兩個版本是不兼容的,因為現在Python正在朝著3.x版本進化,在進化過程中,大量的針對2.x版本的代碼要修改后才能運行,所以,目前有許多第三方庫還暫時無法在3.x上使用。
python官網??https://www.python.org/??可以免費下載
在Mac上安裝Python
如果你正在使用Mac,系統是OS X 10.8或者最新的10.9 Mavericks,恭喜你,系統自帶了Python 2.7。如果你的系統版本低于10.8,請自行備份系統并免費升級到最新的10.9,就可以獲得Python 2.7。
查看系統版本的辦法是點擊左上角的蘋果圖標,選擇“關于本機”:
如果你正在使用Linux,那我可以假定你有Linux系統管理經驗,自行安裝Python 2.7應該沒有問題,否則,請換回Windows系統。
對于大量的目前仍在使用Windows的同學,如果短期內沒有打算換Mac,就可以繼續閱讀以下內容。
在Windows上安裝Python
首先,從Python的官方網站python.org下載最新的2.7版本,網速慢的同學請移步國內鏡像。
然后,運行下載的MSI安裝包,在選擇安裝組件的一步時,勾上所有的組件:
特別要注意選上pip和Add python.exe to Path,然后一路點“Next”即可完成安裝。
默認會安裝到C:\Python27目錄下,然后打開命令提示符窗口,敲入python后,會出現兩種情況:
情況一:
看到上面的畫面,就說明Python安裝成功!
你看到提示符>>>就表示我們已經在Python交互式環境中了,可以輸入任何Python代碼,回車后會立刻得到執行結果。現在,輸入exit()并回車,就可以
退出Python交互式環境(直接關掉命令行窗口也可以!)。
情況二:得到一個錯誤:
‘python’不是內部或外部命令,也不是可運行的程序或批處理文件。
這是因為Windows會根據一個Path的環境變量設定的路徑去查找python.exe,如果沒找到,就會報錯。如果在安裝時漏掉了勾選Add python.exe to Path,那就要手動把python.exe所在的路徑C:\Python27添加到Path中。
如果你不知道怎么修改環境變量,建議把Python安裝程序重新運行一遍,記得勾上Add python.exe to Path。
三、編程語言特點
Python在設計上堅持了清晰劃一的風格,這使得Python成為一門易讀、易維護,并且被大量用戶所歡迎的、用途廣泛的語言。
設計者開發時總的指導思想是,對于一個特定的問題,只要有一種最好的方法來解決就好了。這在由Tim Peters寫的Python格言(稱為The Zen of Python)里面表述為:There should be one-- and preferably only one --obvious way to do it. 這正好和Perl語言(另一種功能類似的高級動態語言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。
Python的作者有意的設計限制性很強的語法,使得不好的編程習慣(例如if語句的下一行不向右縮進)都不能通過編譯。其中很重要的一項就是Python的縮進規則。
一個和其他大多數語言(如C)的區別就是,一個模塊的界限,完全是由每行的首字符在這一行的位置來決定的(而C語言是用一對花括號{}來明確的定出模塊的邊界的,與字符的位置毫無關系)。這一點曾經引起過爭議。因為自從C這類的語言誕生后,語言的語法含義與字符的排列方式分離開來,曾經被認為是一種程序語言的進步。不過不可否認的是,通過強制程序員們縮進(包括if,for和函數定義等所有需要使用模塊的地方),Python確實使得程序更加清晰和美觀。
?
學習Python必要性:????
1.Python所具有的一個顯著優勢就是開發時間的大大降低使企業的軟件創建和維護階段節約大量資金。????
2.Python清晰可讀的語法使得軟件代碼具有異乎尋常的易讀性(雖然某些程序員反對在Python代碼中大量使用空格),甚至對那些不是最初接觸和開發原始項目的程序員都能具有這樣的強烈感覺。???
?3.Python明晰的語法使其成為一種學習曲線平和的編程語言。有經驗的程序員甚至可能在一天之內就掌握Python的基礎知識,至多不過一周作用就可以上手,而編程語言的專家則肯定會比他掌握C、C++、Java甚至Perl要快很多。???
?4.Python編程語言最大的優點就是有一個交互式的開發環境,畢竟Python是解釋運行的,這樣可以大大節省了每次編譯的時間,Python語法簡單,內置有幾種高級數據結構,如字典、列表等。 ? ?
5.Python編程語言可以用來作為批處理語言,寫一些簡單工具,處理些數據,作為其他軟件的接口調試等。Python語言可以用來作為函數語言,進行人工智能 程序的開發,具有Lisp語言的大部分功能。Python編程語言可以用來作為過程語言,進行我們常見的應用程序開發,可以和VB等語言一樣應用。Python編程語言可以用來作為面向對象語言,具有大部分面向對象語言的特征,常作為大型應用軟件的原型開發。 ?6.Python在數據庫方面也很優秀,可以和多種數據庫進行連接,進行數據處理,從商業型的數據庫到開放源碼的數據庫都提供支持。例如:Oracle,Ms SQL Server等等。有多種接口可以與數據庫進行連接,至少包括ODBC。有許多公司采用著Python+MySql的架構。因此,掌握了Python使你 可以充分利用面向對象的特點,在數據庫處理方面如虎添翼。????
7.Python編程語言可以廣泛的在科學計算領域發揮獨特的角色。有許多模塊可以幫助你在計算巨型數組、矢量分析、神經網絡等方面高效率完成工作。尤其是在教育科研方面,可以發揮出獨特的優勢。Python可以非常方便的實現GUI編程,通過Tkinter,wxPython,QT等等模塊,你就可以根據需要編寫出強大的跨平臺的用戶界面程序。????
8.如果你掌握了Python,想在Java里應用它,你可以采用Jython。Jython是采用Java語言實現的Python。這樣,你只 要按照Python的語法,就可以調用Java的各種類庫,快速的編寫出基于Java的程序。也就是通過Jython,編寫Java程序。這樣就可以更為 快速的實現Java的功能。Python在面向對象方面和Java是相通的。
與其他語言之間對比:???
?1.與Perl相比,基本特性不同。Perl更適于處理文本和報表,有強大的系統級支持,Python更 適于在面向對象狀態下工作,并且代碼簡潔,可維護性強。??
??2.與Java相比,編程思想不同。Java先由編譯器編譯成字節碼,而Python直接由解釋器完成編譯,Java的執行速度大于Python。Python簡單易用,更適合于在結構化框架中實現快速開發。????
3.與JavaScript相比,設計目標不同。JavaScript不是真正的腳本語言,沒有真正的跨平臺兼容性和安全性。Python具有更強的擴展性。????
4.與Tcl相比,Python的數據結構處理能力更強,更適合大規模編程。????
5.與Rebol相比,應用對象不同。Rebol重點支持傳輸和交流信息,與電子郵件、Usenet、Web和FTP服務器直接會話,功能很集中。Python則應用范圍更為廣泛。???
6.與Visual Basic相比,VB是Microsoft提供的開發環境,并且更適合數據庫接口開發,應用領域也具有局限性。Python則支持多種數據庫系統,并可以將一個系統的數據翻譯并轉移到另一個系統,跨平臺性更好。????
7.與Awk相比,Awk更適合總結和匯報大量數據,并且易于編寫系統快速腳本,正則表達式語法也比Python先進,但缺乏文件管理能力。????
8.與Ruby相比,Python不強制使用面向對象。事實上,Python支持面向過程程序設計、面向對象程序設計和函數型程序設計等多種編程思想。????
9.與SmallTalk和Lisp相比,Python更接近傳統的編程語言,讓程序員更舒服。????
10.與C和C++相比,Python跨平臺性更好。但值得一提的是Python使用C開發。
Python編程語言的10個特點
1、簡單,非常簡單,便于閱讀。閱讀一個良好的Python程序,感覺像是在學習英語一樣,Python的這種偽代碼特性是它的優點之一。
2、易學,盡管Python是用c語言寫的,但是它擯棄了c中非常復雜的指針,簡化了python的語法。
3、開源,Python是FLOSS(自由/開放源碼軟件)之一。簡單地說,你可以自由地發布這個軟件的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中。Python希望看到一個更加優秀的人創造并經常改進。
4、可移植性好,由于它的開源本質,Python已經被移植在許多平臺上,這些平臺包括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開發的Android平臺。
5、高層語言,使用Python編寫程序時無需考慮如何管理程序使用的內存一類的底層細節。
6、豐富的庫。python有可定義的第三方庫可以使用,可以處理各種工作,包括正則表達式、文檔生成、單元測試、線程、數據庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其他與系統有關的操作。只要安裝了Python,所有這些功能都是可用的。除了標準庫以外,還有許多其他的庫,如wxPython、Twisted和Python圖像庫等。
7、解釋性,可以直接從源代碼運行。在計算機內部,python解釋器把源代碼轉換為字節碼的中間形式,然后再把它翻譯成計算機使用的機器語言。
8、可擴展性,如果需要一段關鍵代碼運行得更快或者希望某些算法不公開,你可以把你的部分程序用C或C++編寫。
9、可嵌入性,可以把Python嵌入到c/c++程序中,從而提供腳本功能。
10、代碼編輯規范,Python采用強制縮進的方式使得代碼具有極佳的可讀性。
1. Pydev + Eclipse –最好的免費python IDE
Pydev的是Python IDE中使用最普遍的,它是免費的,同時還提供很多強大的功能來支持高效的Python編程。Pydev是一個運行在eclipse上的開源插件,它把python帶進了eclipse的王國。
2.?PyCharm –最好的商業python IDE
有很多大品牌公司用戶,像Twitter,Groupon,Spotify,eBay和Telefonica等都在用PyCharm。
3. VIM
VIM是最好的文本編輯器,它提供的功能不亞于此,經過正確的配置后它可以成為一個全功能的Python開發環境。此外VIM還是一個輕量級的、模塊化、快速響應的工具,非常適合那些很牛的程序員——編程從不用鼠標的人。
4. Wing IDE
調試功能是Wing IDE的一大亮點,包括多線程調試,線程代碼調試,自動子進程調試,斷點,單步代碼調試,代碼數據檢查等功能,此外還提供了在樹莓派上進行遠程調試的功能。
5.Spyder Python
Spyder python的基本功能包括多語言編輯器、交互式控制臺、文件查看、variable explorer、文件查找、文件管理等。Spyder IDE也可以運行于windows、Mac或者?Linux系統之上。
6. Komodo IDE
Komodo是Activestate公司開發的一個跨平臺的集成開發環境,支持多種語言包括python。
7. PTVS - Best Python IDE for Windows
PTVS(Python Tools for Visual Studio)集成在Visual Studio中,就像Pydev可以集成在eclipse中一樣。PTVS將Visual Studio變成了一個強大的、功能豐富的python集成開發環境。?
8. Eric Python
Eric由Detlev Offenbach創建,遵循GPL協議,免費使用。經過多年的開發完善Eric已經成為一個常用的、功能豐富的集成開發環境。它提供了一個可靠的插件管理系統,可以通過插件來擴展功能。
9. Sublime Text 3 /?Anaconda Python IDE
Anaconda帶給你最強大的功能是代碼自動補全和代碼檢查。當然Anaconda也很注重基礎功能如:各種各樣的主題,快速響應的用戶界面,配置簡單,各種強大的功能擴展包。
10. Emacs - Python Editor cum IDE
Emacs有屬于它自己的生態系統,它是一個可擴展的并能高度定制的GNU文本編輯器。
五、學習資源
這本書絕對是最簡單的學習?Python 的方法。你會被如此簡單的基礎學習感到震驚,你會真實地感受到自己的學習進程,一步步的獲取新的知識。我也了解到它非常鼓勵?學習者取嘗試并創造自己的程序。
程序可能會很小,但是它們肯定會有助于你更好的理解語言本身和它的語法。Python 非常流行,所以當你遇到了問題是,很有可能在像?StackExchange 這樣的網站已經?一些答案了,當你遇到問題需要解決時盡管去谷歌。
你將會會學到:
在所有的平臺上安裝?Python 編程環境
寫?Python 程序
理解?Python 語法和文檔
像一個程序員一樣思考
還有更多的東西
本書的?HTML 在線版是完全免費的,大部分人都是使用的在線版。我愿意鼓勵你捐贈/購買完整的書,畢竟作者花了很大的力氣來完成它。如果你發現使用視頻學習更容易的話,它的高級版就含有視頻。
Online Python Tutor:Python 初學者的好幫手
是由?Philip Guo?開發的一個免費教育工具,可幫助學生攻克編程學習中的基礎障礙,理解每一行源代碼在程序執行時在計算機中的過程。
如果你在編程生涯中從沒做過這樣的挑戰的話,這可能會有點棘手。但是配和上面介紹的那本書的話也不是很難。你應該試一試。它有?33 個關卡(謎題),可以用你?Python 編程技能解決。
幾百萬的人都在嘗試解決這個,即使你不能完成所有的關卡,你也會將學到很多?新的東西,尤其是批判性思維和發散思維。你的大腦會過熱,但這是編程!
Learn Python Programming @ Codecademy
你將會看到許多”精英”程序員罵這個網站,但那并不重要。我們想要做的是看/測試?一門編程語言的基本語法是怎么工作的,以及當和函數組合時可以做什么。而不是?打印一個?‘Hello World’ .
在這個?Codecademy 的課程中你將會學到如何用文件,如何使用循環。什么是函數以及他們能用來做什么。這些都是很基礎的,但是對初學者很?有好的東西。當需要幫助時有一個交流的論壇,但通常所有東西都能被理解.
你不需要安裝任何工具,如果你想在你自己的電腦上重寫一遍代碼以便更好地理解它,你可能需要的唯一東西就是一個?Notepad++ 編輯器。我就是這樣做的,并且我?向所有想學習編程的人推薦?Codecademy,不管是?Python 還是其他的語言.
Intro to Computer Science @ Udacity
Udacity 提供了一個很棒的免費課程,帶你引入?Python 編程學習,學習搜索引擎的?更多東西,以及如何構建你自己的小型網絡爬蟲。它的確是一個值得參與的有趣的課程,并且還提供了額外的引導和社區支持.
http://www.youtube.com/watch?v=Pm_WAWZNbdA
你可以報名成為高級學生以獲取導師的引導,并且可以在課程末得到一個證書。或者你可以自己使用免費的課件學習。不幸的是,高級課堂的容量有限,所以你?得在申請后進入等待列表.
它總共有?11 個課程,每一個都有很贊的文檔。取它的官方主頁查看更多的?信息或者查看你可能想問的問題的答案.
Google 它本身就被一大堆?Python 代碼驅動著,只有他們支持社區并且愿意?幫助其他人學習語言才有意義。這是我曾看過的最喜歡的指南/課程之一。它真的?很詳細,而且適合初學者,觀看起來也很有趣.
http://www.youtube.com/watch?v=tKTZoB2Vjuk
去看幾分鐘它的第一堂課,看看你是否喜歡那個老師,然后決定是否開始學習! Python 官方主頁有所有的這些練習題和例程的鏈接.
非常像?LPTHW,但是在如何制定你的完美學習計劃并實施,以及如何開始第一步上?提供了更深的引導,而不會讓你喪失自信心。對于那些想學?Python 的人來說它被認為是?最好的初學者教程之一,當然你要先看看前幾章,看看自己是否喜歡它的寫作風格.
Think Python 是一個面向?Python 初學者的一個指南。它從編程的基本概念教起,而且它很?仔細地定義了所有的術語當他們第一次用到時,并且很有邏輯性地展現新的概念。像遞歸和面向?對象這樣大一點的知識塊被分成了一系列更小的步驟,穿插于課程幾個章節.
在這個鏈接上你可以發現大量的示例代碼。它是最專業的書之一,它有一個很嚴肅的原則: “教你計算機科學”。它需要接近?$40 才能買到,但是你可以下載免費的?PDF 和?HTML 版本。如果從頭開始學?Python 的話,我肯定會從它上面得到好處.
你可能會想一個提供編程教程的網站應該知道如何在他們的頁面上添加一個?HTML 標,哈哈哈。嚴肅一點地說,Learnstreet 提供了最棒的?Python 交互式學習教程,就像這篇文章所說的所有?東西一樣,它對初學者很友好。如果你遇到了問題,最好用谷歌搜索他們.
我最喜歡?Learnstreet 的是每一個聯系后面的大量提示/解釋,就在你寫代碼的控制臺里.
如果你更喜歡視頻學習,我不確定是否還有比?The Nes Boston 的?Python 系列視頻教程更?全面的了,其他的許多編程語言也可以在他們的?Youtube 頻道里找到.
它唯一的缺點就是沒有可以看或者下載的實體,你只能看視頻。我是那種不能忍受得一直看視頻?的程序員,這可能與我選擇?Google 的?Python 課程有沖突,但它們是在太有趣了.
這個課程是為從來沒接觸過編程的人準備的。你只需要十年級的數學基礎就可以了: 懂簡單的數學?方程和算術優先級。以及像?f(x) = x + 5 這樣的函數.
它應該在十周內就可以學完,每周大概花10小時來完成課后作業。如果你有時間來做這個,并且?不會壓垮你自己,我十分推薦你注冊并完成這個課程,它只會鞏固你的知識,并可以結合上面介紹?的任何資源以更好的理解?Python.
推薦幾本Python的書(由淺到深)
一、Python基礎教程
《圖靈程序設計叢書:Python基礎教程(第2版 修訂版)》包括Python程序設計的方方面面,首先從Python的安裝開始,隨后介紹了Python的基礎知識和基本概念,包括列表、元組、字符串、字典以及各種語句。然后循序漸進地介紹了一些相對高級的主題,包括抽象、異常、魔法方法、屬性、迭代器。此后探討了如何將Python與數據庫、網絡、C語言等工具結合使用,從而發揮出Python的強大功能,同時介紹了Python程序測試、打包、發布等知識。結尾,作者結合前面講述的內容,按照實際項目開發的步驟向讀者介紹了幾個具有實際意義的Python項目的開發過程。
二、Python編程:從入門到實踐
本書是一本針對所有層次的Python讀者而作的Python入門書。全書分兩部分:首部分介紹用Python 編程所必須了解的基本概念,包括matplotlib、NumPy和Pygal等強大的Python庫和工具介紹,以及列表、字典、if語句、類、文件與異常、代碼測試等內容;第二部分將理論付諸實踐,講解如何開發三個項目,包括簡單的Python 2D游戲開發,如何利用數據生成交互式的信息圖,以及創建和定制簡單的Web應用,并幫讀者解決常見編程問題和困惑。
三、利用Python進行數據分析
《利用Python進行數據分析》講的是利用Python進行數據控制、處理、整理、分析等方面的具體細節和基本要點。同時,它也是利用Python進行科學計算的實用指南(專門針對數據密集型應用)。 《利用Python進行數據分析》重點介紹了用于高效解決各種數據分析問題的Python語言和庫。《利用Python進行數據分析》沒有闡述如何利用Python實現具體的分析方法。
四、Python核心編程
《Python核心編程(第3版)》是經典暢銷圖書《Python核心編程(第二版)》的全新升級版本,總共分為3部分。第1部分為講解了Python的一些通用應用,包括正則表達式、網絡編程、Internet客戶端編程、多線程編程、GUI編程、數據庫編程、Microsoft Office編程、擴展Python等內容。第2部分講解了與Web開發相關的主題,包括Web客戶端和服務器、CGI和WSGI相關的Web編程、Django Web框架、云計算、高級Web服務。第3部分則為一個補充/實驗章節,包括文本處理以及一些其他內容。
《Python核心編程(第3版)》適合具有一定經驗的Python開發人員閱讀。
五、Python數據分析與挖掘實戰
本書共15章,分兩個部分:基礎篇、實戰篇。基礎篇介紹了數據挖掘的基本原理,實戰篇介紹了一個個真實案例,通過對案例深入淺出的剖析,使讀者在不知不覺中通過案例實踐獲得數據挖掘項目經驗,同時快速領悟看似難懂的數據挖掘理論。讀者在閱讀過程中,應充分利用隨書配套的案例建模數據,借助相關的數據挖掘建模工具,通過上機實驗,以快速理解相關知識與理論。
六、量化投資以Python為工具
本書主要講解量化投資的思想和策略,并借助Python 語言進行實戰。本書一共分為5部分,第1部分是Python 入門,第2部分是統計學基礎,第3部分是金融理論、投資組合與量化選股,第4部分是時間序列簡介與配對交易,第5部分是技術指標與量化投資。本書首先對Python 編程語言進行介紹,通過學習,讀者可以迅速掌握用Python 語言處理數據的方法,并靈活運用Python 解決實際金融問題;其次,向讀者介紹量化投資的理論知識,主要講解量化投資所需的數量基礎和類型等方面;最后講述如何在Python語言中構建量化投資策略。
七、機器學習實戰
機器學習是人工智能研究領域中的一個極其重要的方向。在現今大數據時代的背景下,捕獲數據并從中萃取有價值的信息或模式,使得這一過去為分析師與數學家所專屬的研究領域越來越為人們矚目。
本書通過精心編排的實例,切入日常工作任務,摒棄學術化語言,利用高效可復用的Python代碼闡釋如何處理統計數據,進行數據分析及可視化。讀者可從中學到一些核心的機器學習算法,并將其運用于某些策略性任務中,如分類、預測及推薦等。
可以學習Python的地方
1、Vamei老師:【python快速教程】
2、廖雪峰老師:【python教程】
3、實驗樓:【Python基礎+項目實戰課程】
4、《笨辦法學?Python》:這本書絕對是最簡單的學習?Python?的方法,本書的?HTML?在線版是完全免費的。
5、Python?Weekly:每周更新,包括Python相關的文章、教程、演講、書籍、項目、工作等。
6、Python?challenge:用Python編程技能解決33個謎題,闖關。
7、Python官方文檔:官網,去找資料吧!
關于Python的一些文章
1、值得關注的10個python語言博客
2、Python?有哪些好的學習資料或者博客?
3、Python?程序員經常犯的?10?個錯誤
4、Python程序員都會喜歡的6個庫
5、python機器學習入門資料梳理
6、Python性能優化的20條建議
7、Python中的變量、引用、拷貝和作用域
8、Python的迭代器和生成器
9、Python爬蟲:一些常用的爬蟲技巧總結
10、Python“不為人知的”特性
11、Python進階必讀匯總
12、Python滲透測試工具合集
13、Python?中?import?的機制與實現