Python3.6- Python基礎介紹

1. 認識Python

1.1. Python發展歷史

1.1.1. Python之父--吉多·範羅蘇姆

 

 

Python的做者,Guido von Rossum(吉多·範羅蘇姆),荷蘭人1982年,Guido從阿姆斯特丹大學得到了數學和計算機碩士學位。然而,儘管他算得上是一位數學家,但他更加享受計算機帶來的樂趣。用他的話說,儘管擁有數學和計算機雙料資質,他總趨向於作計算機相關的工做,並熱衷於作任何和編程相關的活兒。html

在那個時候,Guido接觸並使用過諸如Pascal [ˈpæskəl]、C、Fortran[ˈfɔ:træn] 等語言。這些語言的基本設計原則是讓機器能更快運行。在80年代,雖然IBM和蘋果已經掀起了我的電腦浪潮,但這些我的電腦的配置很低。好比早期的Macintosh(麥金塔電腦),只有8MHz的CPU主頻和128KB的RAM,一個大的數組就能佔滿內存。全部的編譯器的核心是作優化,以便讓程序可以運行。爲了增進效率,語言也迫使程序員像計算機同樣思考,以便能寫出更符合機器口味的程序。在那個時代,程序員巴不得用手榨取計算機每一寸的能力。有人甚至認爲C語言的指針是在浪費內存。至於動態類型,內存自動管理,面向對象…… 別想了,那會讓你的電腦陷入癱瘓。python

這種編程方式讓Guido感到苦惱。Guido知道如何用C語言寫出一個功能,但整個編寫過程須要耗費大量的時間,即便他已經準確的知道了如何實現。他的另外一個選擇是shell。Bourne Shell(是一個交換式的命令解釋器和命令編程語言)做爲UNIX系統的解釋器已經長期存在。UNIX的管理員們經常用shell去寫一些簡單的腳本,以進行一些系統維護的工做,好比按期備份、文件系統管理等等。shell能夠像膠水同樣UNIX下的許多功能鏈接在一塊兒許多C語言下上百行的程序,在shell下只用幾行就能夠完成。然而,shell的本質是調用命令。它並非一個真正的語言。好比說,shell沒有數值型的數據類型,加法運算都很複雜。總之,shell不能全面的調動計算機的功能。linux

Guido但願有一種語言,這種語言可以像C語言那樣,可以全面調用計算機的功能接口,又能夠像shell那樣,能夠輕鬆的編程ABC語言讓Guido看到但願。ABC是由荷蘭的數學和計算機研究所開發的。Guido在該研究所工做,並參與到ABC語言的開發。ABC語言以教學爲目的。與當時的大部分語言不一樣,ABC語言的目標是「讓用戶感受更好」。ABC語言但願讓語言變得容易閱讀,容易使用,容易記憶,容易學習,並以此來激發人們學習編程的興趣程序員

 

HOW TO RETURN words document:
      PUT {} IN collection
      FOR line IN document:
         FOR word IN split line:
            IF word not.in collection:
               INSERT word IN collection
      RETURN collectionweb

HOW TO用於定義一個函數。一個Python程序員應該很容易理解這段程序。ABC語言使用冒號和縮進來表示程序塊行尾沒有分號for和if結構中也沒有括號() 。賦值採用的是PUT,而不是更常見的等號。這些改動讓ABC程序讀起來像一段文字。 儘管已經具有了良好的可讀性和易用性,ABC語言最終沒有流行起來。在當時,ABC語言編譯器須要比較高配置的電腦才能運行。而這些電腦的使用者一般精通計算機,他們更多考慮程序的效率,而非它的學習難度。除了硬件上的困難外,ABC語言的設計也存在一些致命的問題 可拓展性差。ABC語言不是模塊化語言。若是想在ABC語言中增長功能,好比對圖形化的支持,就必須改動不少地方。 不能直接進行IOABC語言不能直接操做文件系統。儘管你能夠經過諸如文本流的方式導入數據,但ABC沒法直接讀寫文件。輸入輸出的困難對於計算機語言來講是致命的。你能想像一個打不開車門的跑車麼? 過分革新。ABC用天然語言的方式來表達程序的意義,好比上面程序中的HOW TO 。然而對於程序員來講,他們更習慣 用function或者define來定義一個函數。一樣,程序員更習慣用等號來分配變量。儘管ABC語言很特別,但學習難度 也很大。 傳播困難。ABC編譯器很大,必須被保存在磁帶上。當時Guido在訪問的時候,就必須有一個大磁帶來給別人安裝ABC編譯器。 這樣,ABC語言就很難快速傳播。 1989年,爲了打發聖誕節假期,Guido開始寫Python語言的編譯器Python這個名字,來自Guido所摯愛的電視劇Monty Python's Flying Circus(飛行馬戲團)。他但願這個新的叫作Python的語言,能符合他的理想:創造一種C和shell之間,功能全面,易學易用,可拓展的語言Guido做爲一個語言設計愛好者,已經有過設計語言的嘗試。這一次,也不過是一次純粹的hacking(搬運)行爲。正則表達式

 

 

1.1.2. Python參照CABC語言

 

1991年,第一個Python編譯器誕生它是用C語言實現的,並可以調用C語言的庫文件。從一出生,Python已經具備了 :類,函數,異常處理,包含表和詞典在內的核心數據類型,以及模塊爲基礎的拓展系統 Python語法不少來自C,但又受到ABC語言的強烈影響。來自ABC語言的一些規定直到今天還富有爭議,好比強制縮進。 但這些語法規定讓Python容易讀。另外一方面,Python聰明的選擇服從一些慣例,特別是C語言的慣例,好比迴歸等號賦值。Guido認爲,若是「常識」上確立的東西,沒有必要過分糾結。 Python從一開始就特別在乎可拓展性。Python能夠在多個層次上拓展。從高層上,你能夠直接引入. py文件。在底層,你能夠引用C語言的庫。Python程序員能夠快速的使用Python. py文件做爲拓展模塊。但當性能是考慮的重要因素時,Python程序員能夠深刻底層,寫C程序,編譯爲.so文件引入到Python中使用。Python就好像是使用鋼構建房同樣,先規定好大的框架。而程序員能夠在此框架下至關自由的拓展或更改。 最初的Python徹底由Guido本人開發。Python獲得Guido同事的歡迎。他們迅速的反饋使用意見,並參與到Python的改進。Guido和一些同事構成Python的核心團隊。他們將本身大部分的業餘時間用於hack(熟練地編輯) Python。隨後,Python 展到研究所以外。Python將許多機器層面上的細節隱藏,交給編譯器處理,並凸顯出邏輯層面的編程思考。Python程序員能夠花更多的時間用於思考程序的邏輯,而不是具體的實現細節。這一特徵吸引了廣大的程序員。Python開始流行算法

 

 

人生苦短,我用Pythonshell

 

1.1.3. 計算機的性能大大提升

咱們不得不暫停咱們的Python時間,轉而看一看瞬息萬變的計算機行業。1990年代初,我的計算機開始進入普通家庭。Intel發佈了486處理器,windows發佈windows 3.0開始的一系列視窗系統。計算機的性能大大提升。程序員開始關注計算機的易用性,好比圖形化界面。數據庫

 

 

 

 

1.1.4. Python用戶來自許多領域

 

因爲計算機性能的提升,軟件的世界也開始隨之改變。硬件足以知足許多我的電腦的須要。硬件廠商甚至渴望高需求軟件的出現,以帶動硬件的更新換代。C++和Java相繼流行。C++和Java提供了面向對象的編程範式,以及豐富的對象庫。在犧牲了必定的性能的代價下,C++和Java大大提升了程序的產量。語言的易用性被提到一個新的高度。咱們還記得 ABC失敗的一個重要緣由是硬件的性能限制。從這方面說,Python要比ABC幸運許多。 另外一個悄然發生的改變是Internet。1990年代仍是我的電腦的時代,windows和Intel挾PC以令天下,盛極一時。儘管Internet爲主體的信息革命還沒有到來,但許多程序員以及資深計算機用戶已經在頻繁使用Internet進行交流,好比 使用email和newsgroup(新聞組)Internet讓信息交流成本大大降低。一種新的軟件開發模式開始流行:開源。程序員利用業餘時間進行軟件開發,並開放源代碼1991年,Linus(林納斯·託瓦茲)comp.os.minix新聞組上發佈了Linux內核源代碼,吸引大批hacker(電腦迷或者黑客)的加入。Linux和相互合做,最終構成了一個充滿活力的開源平臺。 硬件性能不是瓶頸,PythonGNU又容易使用,因此許多人開始轉向PythonGuido維護了一個maillist(郵件列表),Python用戶就經過郵件進行交流。Python用戶來自許多領域,有不一樣的背景,對Python也有不一樣的需求。Python至關的開放,又容 易拓展,因此當用戶不知足於現有功能,很容易對Python進行拓展或改造。隨後,這些用戶將改動發給Guido,並由Guido決定是否將新的特徵加入到Python或者標準庫中。若是代碼能被歸入Python自身或者標準庫,這將極大的榮譽。因爲Guido至高無上的決定權,他所以被稱爲終身的仁慈獨裁者」。 Python被稱爲「Battery Included」,是說它以及其標準庫的功能強大。這些是整個社區的貢獻。Python的開發者來自不一樣領域,他們將不一樣領域的優勢帶給Python。好比Python標準庫中的正則表達是參考Perl(一種CGI腳本語言),而lambda, map, filter, reduce等函數參考了Lisp(因應人工智能而設計的語言)。Python自己的一些功能以及大部分的標準庫來自於社區。Python的社 區不斷擴大,進而擁有了本身的newsgroup,網站,以及基金。從Python 2.0開始,Python也從maillist的開發方式,轉爲徹底開源的開發方式。社區氣氛已經造成,工做被整個社區分擔,Python也得到了更加高速的發展。 到今天,Python的框架已經確立。Python語言以對象爲核心組織代碼,支持多種編程範式,採用動態類型,自動進行內存回收。Python支持解釋運行,並能調用C庫進行拓展。Python有強大的標準庫。因爲標準庫的體系已經穩定,因此Python的生態系統開始拓展到第三方包。這些包,如Django、web.py、wxPythonnumpy、matplotlib、PIL,將Python升級成了物種豐富的熱帶雨林。編程

 

 

1.1.5. Python的設計理念

import this 就會出現介紹Python語言設計理念的英文介紹

 

 

Python崇尚優美、清晰、簡單,是一個優秀並普遍使用的語言。PythonTIOBE排行榜中排行第,它是Google的第三大開發語言Dropbox的基礎語言,豆瓣的服務器語言。Python的發展史能夠做爲一個表明,帶給我許多啓示。 Python的開發過程當中,社區起到了重要的做用。Guido自認爲本身不是全能型的程序員,因此他只負責制訂框架。若是問題太複雜,他會選擇繞過去,也就是cut the corner(走捷徑)。這些問題最終由社區中的其餘人解決。社區中的人才是異常豐富的,就連建立網站,籌集基金這樣與開發稍遠的事情,也有人樂意於處理。現在的項目開發愈來愈複雜,愈來愈龐大,合做以及開放的心態成爲項目最終成功的關鍵。 Python從其餘語言中學到了不少,不管是已經進入歷史的ABC,仍是依然在使用的C和Perl,以及許多沒有列出的其餘 語言。能夠說,Python的成功表明了它全部借鑑的語言的成功。一樣,Ruby借鑑了Python,它的成功也表明了Python某些方面的成功。每一個語言都是混合體,都有它優秀的地方,但也有各類各樣的缺陷。同時,一個語言「好與很差」的評 判,每每受制於平臺、硬件、時代等等外部緣由。程序員經歷過許多語言之爭。其實,以開放的心態來接受各個語言,說不定哪一天,程序員也能夠如Guido那樣,混合出本身的語言。

 

 

Python之禪 by Tim Peters
 
•優美勝於醜陋(Python 以編寫優美的代碼爲目標)
•明瞭勝於晦澀(優美的代碼應當是明瞭的,命名規範,風格類似)
•簡潔勝於複雜(優美的代碼應當是簡潔的,不要有複雜的內部實現)
•複雜勝於凌亂(若是複雜不可避免,那代碼間也不能有難懂的關係,要保持接口簡潔)
•扁平勝於嵌套(優美的代碼應當是扁平的,不能有太多的嵌套)
•間隔勝於緊湊(優美的代碼有適當的間隔,不要奢望一行代碼解決問題)
•可讀性很重要(優美的代碼是可讀的)
•即使假借特例的實用性之名,也不可違背這些規則(這些規則至高無上)
•不要包容全部錯誤,除非你肯定須要這樣作(精準地捕獲異常,不寫 except:pass 風格的代碼)
•當存在多種可能,不要嘗試去猜想
•而是儘可能找一種,最好是惟一一種明顯的解決方案(若是不肯定,就用窮舉法)
•雖然這並不容易,由於你不是 Python 之父(這裏的 Dutch 是指 Guido )
•作也許好過不作,但不假思索就動手還不如不作(動手以前要細思量)
•若是你沒法向人描述你的方案,那確定不是一個好方案;反之亦然(方案測評標準)
•命名空間是一種絕妙的理念,咱們應當多加利用(倡導與號召)

1.1.6. 關鍵點常識

Python/ˈpaɪθən/ 的發音與拼寫

Python的意思是蟒蛇,源於做者喜歡的一部電視劇

Python的做者是Guido van Rossum(吉多·範羅蘇姆)

Python是龜叔在1989年聖誕節期間,爲了打發無聊的聖誕節而用C編寫的一個編程語言

Python正式誕生於1991年

Python的解釋器現在有多個語言實現,咱們經常使用的是CPython(官方版本的C語言實現),其餘還有Jython(能夠運行在Java平臺)、IronPython(能夠運行在.NET和Mono(跨平臺 .NET運行環境平臺))、PyPy(Python實現的,支持JIT即時編譯)

Python目前有兩個版本,Python2.xPython3.x,最新版分別爲2.7.143.6.3,現階段大部分公司用的是Python2.x

Life is shot, you need Python. 人生苦短,我用Python。

2017年6月份 編程語言流行排行榜 

 

 

1.2. Python優缺點

1.2.1. 優勢

簡單————Python是一種表明簡單主義思想的語言。閱讀一個良好的Python程序就感受像是在讀英語同樣,儘管這個英語的要求很是嚴格!Python的這種僞代碼本質是它最大的優勢之一。它使你可以專一於解決問題而不是去搞明白語言自己。

易學————就如同你即將看到的同樣,Python極其容易上手。前面已經提到了,Python有極其簡單的語法。

免費、開源————PythonFLOSS(自由/開放源碼軟件)之一。簡單地說,你能夠自由地發佈這個軟件的拷貝、閱讀它的源代碼、對它作改動、把它的一部分用於新的自由軟件中。FLOSS是基於一個團體分享知識的概念。這是爲何Python如此優秀的緣由之一——它是由一羣但願看到一個更加優秀的Python的人創造並常常改進着的。

高層語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節。

可移植性————因爲它的開源本質,Python已經被移植在許多平臺上(通過改動使它可以工做在不一樣平臺上)。若是你當心地避免使用依賴於系統的特性,那麼你的全部Python程序無需修改就能夠在下述任何平臺上面運行。這些平臺包括Linux、WindowsFreeBSDMacintosh、Solaris、OS/二、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows 甚至還有PocketPC、Symbian以及Google基於linux開發的Android平臺!

解釋性————這一點須要一些解釋。一個用編譯性語言好比C或C++寫的程序能夠從源文件(即C或C++語言)轉換到一個你的計算機使用的語言(二進制代碼,即0和1)。這個過程經過編譯器和不一樣的標記、選項完成。當你運行你的程序的時候,鏈接/轉載器軟件把你的程序從硬盤複製到內存中而且運行。而Python語言寫的程序不須要編譯成二進制代碼。你能夠直接從源代碼運行程序。在計算機內部,Python解釋器把源代碼轉換成稱爲字節碼的中間形式,而後再把它翻譯成計算機使用的機器語言並運行。事實上,因爲你再也不須要擔憂如何編譯程序,如何確保鏈接轉載正確的庫等等,全部這一切使得使用Python更加簡單。因爲你只須要把你的Python程序拷貝到另一臺計算機上,它就能夠工做了,這也使得你的Python程序更加易於移植

面向對象————Python既支持面向過程的編程也支持面向對象的編程。在「面向過程」的語言中,程序是由過程或僅僅是可重用代碼的函數構建起來的。在「面向對象」的語言中,程序是由數據和功能組合而成的對象構建起來的。與其餘主要的語言如C++和Java相比,Python以一種很是強大又簡單的方式實現面向對象編程。

可擴展性————若是你須要你的一段關鍵代碼運行得更快或者但願某些算法不公開,你能夠把你的部分程序用C或C++編寫,而後在你的Python程序中使用它們。

豐富的庫————Python標準庫確實很龐大。它能夠幫助你處理各類工做,包括正則表達式、文檔生成、單元測試、線程、數據庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其餘與系統有關的操做。記住,只要安裝了Python,全部這些功能都是可用的。這被稱做Python「功能齊全」理念。除了標準庫之外,還有許多其餘高質量的庫,如wxPythonTwisted(是用Python實現的基於事件驅動的網絡引擎框架)和Python圖像庫等等。

規範的代碼————Python採用強制縮進的方式使得代碼具備極佳的可讀性。

1.2.2. 缺點

運行速度,有速度要求的話,用C++改寫關鍵部分吧。

國內市場較小,但時間推移,目前不少國內軟件公司,也開始規模使用Python。

構架選擇太多(沒有像C#這樣的官方.net構架,也沒有像ruby因爲歷史較短,構架開發的相對集中。Ruby on Rails 構架開發中小型web程序天下無敵)。不過這也從另外一個側面說明,Python比較優秀,吸引的人才多,項目也多。

1.3. Python應用場景

1.3.1. Web應用開發

 

Python常常被用於Web開發。好比,經過mod_wsgi模塊,Apache能夠運行用Python編寫的Web程序。Python定義了WSGI(是Python應用程序或框架和Web服務器之間的一種接口)標準應用接口來協調Http服務器與基於PythonWeb程序之間的通訊。一些Web框架,如Django,TurboGears,web2py,Zope等,可讓程序員輕鬆地開發和管理複雜的Web程序。

1.3.2. 自動化運維

在不少操做系統裏,Python是標準的系統組件。 大多數Linux發行版以及ubuntu、NetBSD、OpenBSD和Mac OS X都集成了Python,能夠在終端下直接運行Python。有一些Linux發行版的安裝器使用Python語言編寫,好比Ubuntu的Ubiquity安裝器,Red Hat Linux和Fedora的Anaconda安裝器。Gentoo Linux使用Python來編寫它的Portage包管理系統。Python標準庫包含了多個調用操做系統功能的庫。經過pywin32這個第三方軟件包,Python可以訪問Windows的COM服務及其它Windows API。使用IronPython,Python程序可以直接調用.Net Framework。通常說來,Python編寫的系統管理腳本在可讀性、性能、代碼重用度、擴展性幾方面都優於普通的shell腳本。

1.3.3. 科學計算

NumPy,SciPy,Matplotlib可讓Python程序員編寫科學計算程序。

 

 

1.3.4. 桌面軟件

PyQt、PySide、wxPythonPyGTK是Python快速開發桌面應用程序的利器。

1.3.5. 服務器軟件

Python對於各類網絡協議的支持很完善,所以常常被用於編寫服務器軟件、網絡爬蟲。第三方庫Twisted[ˈtwɪstɪd] 支持異步網絡編程和多數標準的網絡協議(包含客戶端和服務器),而且提供了多種工具,被普遍用於編寫高性能的服務器軟件。

1.3.6. 遊戲

不少遊戲使用C++編寫圖形顯示等高性能模塊,而使用Python或者Lua編寫遊戲的邏輯、服務器。相較於PythonLua的功能更簡單、體積更小;而Python則支持更多的特性和數據類型。

1.3.7. 產品早期原型和迭代

餓了麼、小米、瓜子、Ucloud360、騰訊、阿里巴巴、陌陌、美團和知乎YouTube、Google、Yahoo!、NASA都在內部大量地使用Python。

 

 

1.3.8. 人工智能

AIMAPython實現了從Russell到Norvigs的「人工智能:一種現代的方法」的算法

pyDatalogPython中的邏輯編程引擎

SimpleAIPython實如今「人工智能:一種現代的方法」這本書中描述過的人工智能的算法。它專一於提供一個易於使用,有良好文檔和測試的庫。

EasyAI:一個雙人AI遊戲的python引擎(負極大值,置換表、遊戲解決)

機器學習庫

PyBrain 一個靈活,簡單而有效的針對機器學習任務的算法,它是模塊化的Python機器學習庫。它也提供了多種預約義好的環境來測試和比較你的算法。

PyML 一個用Python寫的雙邊框架,重點研究SVM和其餘內核方法。它支持Linux和Mac OS X。

scikit-learn 旨在提供簡單而強大的解決方案,能夠在不一樣的上下文中重用:機器學習做爲科學和工程的一個多功能工具。它是python的一個模塊,集成了經典的機器學習的算法,這些算法是和python科學包(numpy,scipy.matplotlib)緊密聯繫在一塊兒的。

MDP-Toolkit 這是一個Python數據處理的框架,能夠很容易的進行擴展。它海收集了有監管和沒有監管的學習算法和其餘數據處理單元,能夠組合成數據處理序列或者更復雜的前饋網絡結構。新算法的實現是簡單和直觀的。可用的算法是在不斷的穩定增長的,包括信號處理方法(主成分分析、獨立成分分析、慢特徵分析),流型學習方法(局部線性嵌入),集中分類,機率方法(因子分析,RBM),數據預處理方法等等。

天然語言和文本處理庫

NLTK 開源的Python模塊,語言學數據和文檔,用來研究和開發天然語言處理和文本分析。有windows,Mac OSX和Linux版本

1.3.9. 數據分析

1python下的數據分析模塊
pandas依賴於numpysciepy,主要用於數據分析,數據預處理以及基本的做圖,這個包不涉及複雜的模型。
statsmodels統計包,設計各類統計模型,包括迴歸、廣義迴歸、假設檢驗等,結果相似於R語言,會給出各類檢驗結果。
對於numpyscipy是做爲科學計算用的,提供各類向量矩陣計算、優化、隨機數生成等等。
以上都是一些包,若是是分析環境的話,能夠考慮spyderipython notebook——其中ipython notebook 是能夠把代碼、結果以及報告同時結合在一塊兒的東西——相似於R語言的Rmarkdown

2python的數據可視化
最經常使用的matplotlib,用於科學制圖——基礎的繪圖,已經集成在pandas裏。此外,ggplot2R語言下的繪圖神器,也同時支持python的喲,很是推薦。

三、數據存儲
通常都用數據庫吧。若是怕麻煩,用cPickle直接把數據保存成文本,下次使用直接load就能夠。此外,python是內置了spqlite3數據庫的,能夠直接使用。對於複雜的數據,可使用數據庫接口——各類的,包括hadoop。



1.4 主要以Python3.x爲主,Python2.x爲輔

國內是Python2.x和Python3.x並存,官方如今極力推薦使用Python3.x

Python目前有兩個版本,Python2和Python3,最新版分別爲2.7.143.6.3,現階段大部分公司用的是Python2

1.5 Python是解釋器語言

編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機能夠直接以機器語言來運行此程序,速度很快

解釋器則是隻在執行程序時,才一條一條的解釋成機器語言給計算機來執行,因此運行速度是不如編譯後的程序運行的快的

 

 

 

 

編譯型vs解釋型

編譯型
優勢:編譯器通常會有預編譯的過程對代碼進行優化。由於編譯只作一次,運行時不須要編譯,因此編譯型語言的程序執行效率高。能夠脫離語言環境獨立運行。
缺點:編譯以後若是須要修改就須要整個模塊從新編譯。編譯的時候根據對應的運行環境生成機器碼,不一樣的操做系統之間移植就會有問題,須要根據運行的操做系統環境編譯不一樣的可執行文件。

解釋型
優勢:有良好的平臺兼容性,在任何環境中均可以運行,前提是安裝瞭解釋器(虛擬機)。靈活,修改代碼的時候直接修改就能夠,能夠快速部署,不用停機維護。

缺點:每次運行的時候都要解釋一遍,性能上不如編譯型語言。

 

 

2. Python開發環境的搭建

2.1.在Window系統上搭建Python開發環境

Python最新源碼,二進制文檔,新聞資訊等能夠在Python的官網查看到:

Python官網:https://www.python.org/

你能夠在如下連接中下載 Python 的文檔,你能夠下載 HTMLPDF PostScript 等格式的文檔。

Python文檔下載地址:https://www.python.org/doc/

 

 

https://www.python.org/downloads/windows/

 

 

 

 

2.2. Windows 設置環境變量

2.2.1. 在環境變量中添加Python目錄:

Ctrl + Alt + t 打開終端輸入命令:python

 

 

3. 編寫第一個Python程序

3.1 Python解釋器介紹

3.1.1. 和C程序對比

第一個C程序代碼.c

#include<stdio.h>
int main(){
    printf("Hello heheh!\n");
    return 0;
}

 

編譯命令:gcc 第一個C程序代碼.c

編譯後生成a.out*文件

 

執行c代碼的庫文件:./a.out

3.1.2. 第一個Python程序

 print("Hello hahe\n")

3.1.3. Python執行過程

 

 

 

一個用編譯性語言好比C或C++寫的程序能夠從源文件(即C或C++語言)轉換到一個你的計算機使用的語言(二進制代碼,即0和1)。這個過程經過編譯器和不一樣的標記、選項完成。當你運行你的程序的時候,鏈接/轉載器軟件把你的程序從硬盤複製到內存中而且運行。而Python語言寫的程序不須要編譯成二進制代碼。你能夠直接從源代碼運行程序。在計算機內部,Python解釋器把源代碼轉換成稱爲字節碼的中間形式,而後再把它翻譯成計算機使用的機器語言並運行。事實上,因爲你再也不須要擔憂如何編譯程序,如何確保鏈接轉載正確的庫等等,全部這一切使得使用Python更加簡單。因爲你只須要把你的Python程序拷貝到另一臺計算機上,它就能夠工做了,這也使得你的Python程序更加易於移植

 

3.1.4. Python解釋器

當咱們編寫Python代碼時,咱們獲得的是一個包含Python代碼的以.py爲擴展名的文本文件。要運行代碼,就須要Python解釋器去執行.py文件。

因爲整個Python語言從規範到解釋器都是開源的,因此理論上,只要水平夠高,任何人均可以編寫Python解釋器來執行Python代碼(固然難度很大)。事實上,確實存在多種Python解釋器。

 

CPython:當咱們從Python官方網站下載並安裝好Python 3.5後,咱們就直接得到了一個官方版本的解釋器CPython。這個解釋器是用C語言開發的,因此叫CPython。在命令行下運行python就是啓動CPython解釋器。CPython是使用最廣的Python解釋器。

 

IPythonIPython是基於CPython之上的一個交互式解釋器,也就是說,IPython只是在交互方式上有所加強,可是執行Python代碼的功能和CPython是徹底同樣的。比如不少國產瀏覽器雖然外觀不一樣,但內核其實都是調用了IE。CPython用>>>做爲提示符,而IPython用In [序號]:做爲提示符。

 

PyPyPyPy是另外一個Python解釋器,它的目標是執行速度PyPy採JIT技術,對Python代碼進行動態編譯(注意不是解釋),因此能夠顯著提升Python代碼的執行速度。絕大部分Python代碼均可以在PyPy下運行,可是PyPy和CPython有一些是不一樣的,這就致使相同的Python代碼在兩種解釋器下執行可能會有不一樣的結果。若是你的代碼要放到PyPy下執行,就須要瞭解PyPy和CPython的不一樣點。

 

JythonJython是運行在Java平臺上的Python解釋器,能夠直接把Python代碼編譯成Java字節碼執行。

 

IronPythonIronPython和Jython相似,只不過IronPython是運行在微軟.Net平臺上的Python解釋器,能夠直接把Python代碼編譯成.Net的字節碼。

 

小結:Python的解釋器不少,但使用最普遍的仍是CPython。若是要和Java或.Net平臺交互,最好的辦法不是用Jython或IronPython,而是經過網絡調用來交互,確保各程序之間的獨立性。

3.2 使用交互模式寫Python程序

3.2.1. 打開「終端」 

 

 

3.2.2 查看Python版本

2.輸入Python3 ,輸入Python3表示用的Python這門編程語言的第3個版本,若是隻輸入Python的話表示用的是Python的第2個版本 

print('hello world')

 

 

退出Python3交互模式:exit()或者ctrl+d

 

3.3 使用編輯器寫Python程序

3.3.1. 使用nodpa++編寫Python程序

打開編輯軟件

 

把如下代碼,編寫以下代碼 

 

運行程序

python3 test.py

 

3.4 練一練

要求:編寫一個程序,輸出「人工苦短我用python」和「我在python路程中等你」

注意:注意:Python3.X 源碼文件默認使用utf-8編碼,因此能夠正常解析中文,無需指定 UTF-8 編碼。

3.5 小總結

對於編寫Python程序,上面有3種方法,那到實際開發中哪種用的比較多呢?通常是用第2或者第3種,即保存在xxx.py文件中,這樣能夠直接下一次執行運行;而若是用第一種方法的話,每一次運行程序都須要從新進行輸入,費時費力

 

4. Python中主流的集成開發環境簡介

​Python是一種很是流行的開源編程語言。得益於無盡的模塊選項,Python今天普遍用於腳本語言、Web開發、移動和桌面在許多領域。隨着人工智能的復興,數據科學的崛起,Python更是紅火起來。

 

4.1 PyCharm

 

連接:https://www.jetbrains.com/pycharm/

由向來生產IDE利器的JetBrains出品,當之無愧的最最好的Python IDE(沒有之一)

  • 閉源
  • 支持WindowsMacOSLinux
  • 專爲PythonJavascriptCoffeescriptTypescriptHTML / CSSAngularJSNode.js等而設計
  • 集成了單元測試,代碼檢查,集成版本控制,代碼重構工具,各類工具用於項目導航,突出顯示和自動完成等等特性
  • 支持多個第三方Web開發框架,如DjangoPyramidweb2pygoogle應用程序引擎和Flask,使其成爲一個完整的Rapid應用程序開發IDE

4.2.1. 下載地址

https://www.jetbrains.com/pycharm/

進入該頁面選擇下載linux的下pycharm-professional-2016.3.3.tar.gz

https://www.jetbrains.com/pycharm/download/previous.html

相關文章
相關標籤/搜索