Python學習筆記之Python簡介
1、Python是著名的"龜叔"Guido van Rossum在1989年聖誕節期間,為了打發無聊的聖誕節而編寫的一個程式設計語言。
2、Python是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。
3、Python的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些标點符号,它具有比其他語言更有特色文法結構。
(1)Python 是一種解釋型語言: 這意味着開發過程中沒有了編譯這個環節。類似于PHP和Perl語言。
(2)Python 是互動式語言: 這意味着,您可以在一個Python提示符,直接互動執行寫你的程式。
(3)Python 是面向對象語言: 這意味着Python支援面向對象的風格或代碼封裝在對象的程式設計技術。
(4)Python是初學者的語言:Python 對初級程式員而言,是一種偉大的語言,它支援廣泛的應用程式開發,從簡單的文字處理到 WWW 浏覽器再到遊戲。
Python是由Guido van Rossum在八十年代末和九十年代初,在荷蘭國家數學和計算機科學研究所設計出來的。
Python 本身也是由諸多其他語言發展而來的,這包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的腳本語言等等。
像Perl語言一樣, Python 源代碼同樣遵循 GPL(GNU General Public License)協定。
現在Python是由一個核心開發團隊在維護,Guido van Rossum 仍然占據着至關重要的作用,指導其進展。
1、優點
(1)易于學習:Python有相對較少的關鍵字,結構簡單,和一個明确定義的文法,學習起來更加簡單。
(2)易于閱讀:Python代碼定義的更清晰。
(3)易于維護:Python的成功在于它的源代碼是相當容易維護的。
(4)一個廣泛的标準庫:Python的最大的優勢之一是豐富的庫,跨平台的,在UNIX,Windows和Macintosh相容很好。
(5)互動模式:互動模式的支援,您可以從終端輸入并獲得結果的語言,互動的測試和調試代碼片斷。
(6)便攜式:Python可以運作在多種硬體平台和所有平台上都具有相同的接口。
(7)可擴充:可以添加低層次的子產品到Python解釋器。這些子產品使程式員可以添加或定制自己的工具,更有效。
(8)資料庫:Python提供所有主要的商業資料庫的接口。
(9)GUI程式設計:Python支援GUI可以建立和移植到許多系統調用。
(10)可擴充性:相比 shell 腳本,Python 提供了一個更好的結構,且支援大型程式。
2、缺點
(1)代碼不能加密:如果要釋出你的Python程式,實際上就是釋出源代碼,這一點跟C語言不同,C語言不用釋出源代碼,隻需要把編譯後的機器碼(也就是你在Windows上常見的xxx.exe檔案)釋出出去。
注:目前的網際網路時代,靠賣軟體授權的商業模式越來越少了,靠網站和移動應用賣服務的模式越來越多了,後一種模式不需要把源碼給别人。
(2)速度慢:和C程式相比非常慢,因為Python是解釋型語言,你的代碼在執行時會一行一行地翻譯成CPU能了解的機器碼,這個翻譯過程非常耗時,是以很慢。而C程式是運作前直接編譯成CPU能執行的機器碼,是以非常快。
注:大量的應用程式不需要這麼快的運作速度,因為使用者根本感覺不出來。
例如:開發一個下載下傳MP3的網絡應用程式,C程式的運作時間需要0.001秒,而Python程式的運作時間需要0.1秒,慢了100倍,但由于網絡更慢,需要等待1秒,你想,使用者能感覺到1.001秒和1.1秒的差別嗎?
1、系統程式設計:提供API(Application Programming Interface應用程式程式設計接口),能友善進行系統維護和管理,Linux下标志性語言之一,是很多系統管理者理想的程式設計工具。
2、圖形處理:有PIL、Tkinter等圖形庫支援,能友善進行圖形處理。
3、數學處理:NumPy擴充提供大量與許多标準數學庫的接口。
4、文本處理:python提供的re子產品能支援正規表達式,還提供SGML,XML分析子產品,許多程式員利用python進行XML程式的開發。
5、資料庫程式設計:程式員可通過遵循Python DB-API(資料庫應用程式程式設計接口)規範的子產品與Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等資料庫通信。python自帶有一個Gadfly子產品,提供了一個完整的SQL環境。
6、網絡程式設計:提供豐富的子產品支援sockets程式設計,能友善快速地開發分布式應用程式。很多大規模軟體開發計劃例如Zope,Mnet 及BitTorrent. Google都在廣泛地使用它。
7、Web程式設計:應用的開發語言,支援最新的XML技術。
8、多媒體應用:Python的PyOpenGL子產品封裝了"OpenGL應用程式程式設計接口",能進行二維和三維圖像處理。PyGame子產品可用于編寫遊戲軟體。
9、pymo引擎:PYMO全稱為python memories off,是一款運作于Symbian S60V3,Symbian3,S60V5, Symbian3, Android系統上的AVG遊戲引擎。因其基于python2.0平台開發,并且适用于建立秋之回憶(memories off)風格的AVG遊戲,故命名為PYMO。
10、黑客程式設計:python有一個hack的庫,内置了你熟悉的或不熟悉的函數,但是缺少成就感。
11、用Python寫簡單爬蟲
首先,要通過urllib2這個Module獲得對應的HTML源碼。
import urllib2 #調用urllib2
url='http://www.baidu.com/s?wd=cloga' #把等号右邊的網址指派給url
html=urllib2.urlopen(url).read() #html随意取名 等号後面的動作是打開源代碼頁面,并閱讀
print html #列印
通過上面這三句就可以将URL的源碼存在content變量中,其類型為字元型。
接下來是要從這堆HTML源碼中提取我們需要的内容。用Chrome檢視一下對應的内容的代碼(也可以用Firefox的Firebug)。
可以看到url的資訊存儲在span标簽中,要擷取其中的資訊可以用正則式。
1、Python是一門跨平台的腳本語言,Python規定了一個Python文法規則,實作了Python文法的解釋程式就成為了Python的解釋器。
2、CPython(ClassicPython,也就是原始的Python實作,需要差別于其他實作的時候才以CPython稱呼;或解作C語言實作的Python)。這是最常用的Python版本。
3、Jython(原名JPython;Java語言實作的Python,現已正式釋出)。Jython可以直接調用Java的各種函數庫。
4、PyPy(使用Python語言寫的Python)
5、IronPython(面向.NET和ECMA CLI的Python實作)。IronPython能夠直接調用.net平台的各種函數庫。可以将Python程式編譯成.net程式。
6、ZhPy(周蟒)(支援使用繁/簡中文語句編寫程式的Python語言)
本文轉自 運維小當家 51CTO部落格,原文連結:http://blog.51cto.com/solin/1943029,如需轉載請自行聯系原作者