python的歷史:
python的創始人是吉多·范羅蘇姆(Guido van Rossum),人稱“龜叔”,1989年圣誕節期間,Guido開始寫Python語言的編譯器。他希望這個叫做Python的語言能符合他的理想:創造一種C和shell之間,功能全面,易學易用,可拓展的語言。
Python是一門崇尚優美、清晰、簡單、優秀并廣泛使用的語言。
Python的應用領域:
web開發--Python web框架包括最火的Django(官方的標語把Django定義為the framework for perfectionist with deadlines-大意是一個為完全主義者開發的高效率web框架),支持異步高并發的Tornado,短小精悍的flask,bottle。
網絡編程--支持高并發的Twisted網絡框架,Python3引入的asyncio使異步編程變的非常簡單。
爬蟲--爬蟲領域,python幾乎是霸主地位,Scrapy\Request\BeautifuSoap\urllib等,想爬什么爬什么
云計算--目前最火的知名云計算框架是Openstack
人工智能
自動化運維
金融分析--Python是金融分析、量化交易領域里用的最多的語言
科學運算--隨著NumPy, SciPy, Matplotlib, Enthought librarys等眾多程序庫的開發,使的Python越來越適合于做科學計算、繪制高質量的2D和3D圖像。和科學計算領域最流行的商業軟件Matlab相比,Python是一門通用的程序設計語言,比Matlab所采用的腳本語言的應用范圍更廣泛。
游戲開發--在網絡游戲開發中Python也有很多應用。相比Lua or C++,Python 比 Lua 有更高階的抽象能力,可以用更少的代碼描述游戲業務邏輯,與 Lua 相比,Python 更適合作為一種 Host 語言,即程序的入口點是在 Python 那一端會比較好,然后用 C/C++ 在非常必要的時候寫一些擴展。Python 非常適合編寫 1 萬行以上的項目,而且能夠很好地把網游項目的規模控制在 10 萬行代碼以內。另外據我所知,知名的游戲 就是用Python寫的。
Python的版本及發展:
Python包括Python2和Python3
1989年,Guido開始寫Python語言的編譯器。
1991年,第一個Python編譯器誕生。它是用C語言實現的,并能夠調用C語言的庫文件。從一出生,Python已經具有了:類,函數,異常處理,包含表和詞典在內的核心數據類型,以及模塊為基礎的拓展系統。
Granddaddy of Python web frameworks, Zope 1 was released in 1999
Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.
Python 2.0 - October 16, 2000,加入了內存回收機制,構成了現在Python語言框架的基礎
Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 誕生
Python 2.5 - September 19, 2006
Python 2.6 - October 1, 2008
Python 2.7 - July 3, 2010
In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible
Python 3.0 - December 3, 2008 (這里要解釋清楚 為什么08年就出3.0,2010年反而又推出了2.7?是因為3.0不向下兼容2.0,導致大家都拒絕升級3.0,無奈官方只能推出2.7過渡版本)
Python 3.1 - June 27, 2009
Python 3.2 - February 20, 2011
Python 3.3 - September 29, 2012
Python 3.4 - March 16, 2014
Python 3.5 - September 13, 2015
Python 3.6 -? 2016-12-23 發布python3.6.0版
Python2和Python3的區別在后面具體的一一列出。
Python的種類:
CPython
當我們從Python官方網站下載并安裝好Python 2.7后,我們就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,所以叫CPython。在命令行下運行python就是啟動CPython解釋器。CPython是使用最廣且被的Python解釋器。教程的所有代碼也都在CPython下執行。
IPython
IPython是基于CPython之上的一個交互式解釋器,也就是說,IPython只是在交互方式上有所增強,但是執行Python代碼的功能和CPython是完全一樣的。好比很多國產瀏覽器雖然外觀不同,但內核其實都是調用了IE。
CPython用>>>作為提示符,而IPython用In [序號]:作為提示符。
PyPy
PyPy是另一個Python解釋器,它的目標是執行速度。PyPy采用JIT技術,對Python代碼進行動態編譯(注意不是解釋),所以可以顯著提高Python代碼的執行速度。絕大部分Python代碼都可以在PyPy下運行,但是PyPy和CPython有一些是不同的,這就導致相同的Python代碼在兩種解釋器下執行可能會有不同的結果。如果你的代碼要放到PyPy下執行,就需要了解PyPy和CPython的不同點。
Jython
Jython是運行在Java平臺上的Python解釋器,可以直接把Python代碼編譯成Java字節碼執行。
IronPython
IronPython和Jython類似,只不過IronPython是運行在微軟.Net平臺上的Python解釋器,可以直接把Python代碼編譯成.Net的字節碼。
高級語言分類:
編譯型:
編譯是指在應用源程序執行之前,就將程序源代碼“翻譯”成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行(編譯后生成的可執行文件,是cpu可以理解的2禁止的機器碼組成的),使用比較方便,效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(*.obj,也就是OBJ文件)才能執行,只有目標文件而沒有源代碼修好不是很方便。
編譯后程序運行時不需要重新翻譯,直接使用編譯的結果就行了,程序執行效率高,依賴編譯器,跨平臺性差。代表語言有C、C++、Delphi等
解釋型:
執行方式類似于我們日常生活中的“同聲翻譯”,應用程序源代碼一由又相應語言的解釋器"翻譯成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器(想運行,必須先裝上解釋器,就像跟老外說話必須有翻譯在場),但這種方式比較靈活,可以動態地調整,修改應用程序。代表語言有Python、Java、PHP、Ruby等
編譯型:把源代碼一次性編譯成二進制,然后在執行。
優點:執行效率高,不需要依賴語言環境,可直接執行。
缺點:每次修改源代碼,需要重新編譯,生成機器碼文件,跨平臺性不好,不同操作系統,調用底層的機器指令不同,需為不同平臺生成不同的機器碼文件。
解釋型:用戶調用解釋器,執行源代碼文件,解釋器吧源代碼邊解釋成二進制,邊執行。
優點:跨平臺使用,因為解釋器已經做好了對不同平臺的交互處理,用戶不用考慮平臺差異性,可謂一份源代碼,所有平臺都可執行,可隨時修改,立即見效,改完源代碼,直接運行看效果。
缺點:運行效率低,所有的代碼均需經過編譯器,邊解釋邊執行,速度比較慢,代碼是明文。
Python的環境安裝
windows下:
安裝過程可選擇自動添加到環境變量中。
若安裝了多個版本的Python解釋器,可通過更改環境變量實現更改默認使用版本。
1,點“我的電腦”,右鍵選“屬性”
2,選擇“高級系統設置”--->選“環境變量”--->在“系統變量”中選中“Path”,再點“編輯”--->再點“編輯文本”
3,在“變量值”一欄,把自己所安裝的python路徑拷進去就可以了,我安裝的路徑是“C:\Python27”
%這一步要注意:在拷貝路徑“C:\Python27”時,前面要加分號,,還要注意,分號一定是英文輸入法里的分號,我剛開始沒有注意到這一點,導致在命令行里輸入python命令時,總是失敗,會提示‘python’不是內部或外部命令,也不是可運行的程序或批處理文件
測試是否安裝成功:
window--運行--cmd--輸入python--能進入交互環境,安裝成功,這里可以輸入print("hello,world!)
這里介紹下執行python源文件的幾種方式:
1.將寫好的python源代碼保存成.py格式的文件,然后在cmd命令行窗口中輸入python+ “文件位置”執行。
2.在cmd命令行,輸入python進入交互環境,然后輸入python源代碼,直接執行。