天天看點

python語言能做什麼-Python是什麼_python能做什麼

Python是什麼

Python是一種程式設計語言,它的名字來源于一個喜劇。也許最初設計Python這種語言的人并沒有想到今天Python會在工業和科研上獲得如此廣泛的使用。著名的自由軟體作者Eric Raymond在他的文章《如何成為一名黑客》中,将Python列為黑客應當學習的四種程式設計語言之一,并建議人們從Python開始學習程式設計。

這的确是一個中肯的建議,對于那些從來沒有學習過程式設計或者并非計算機專業的程式設計學習者而言,Python是最好的選擇之一。Python第一次學習Python,我隻用了不到二十分鐘的時間,站在書店裡把一本教初學程式設計的人學習Python的書翻了一遍。也是從那時起,我開始被這種神奇的語言吸引。

Python可以用來開發symbian上的東西。

易用與速度的完美結合Python是一種用起來很友善的語言,很多初學Java的人都會被Java的CLASSPATH搞得暈頭轉向,花上半天的時間才搞明白原來是CLASSPATH搞錯了自己的Hello World才沒法運作。用Python就不會有這種問題,隻要裝上就能直接用。

Python是一種腳本語言,寫好了就可以直接運作,省去了編譯連結的麻煩,對于需要多動手實踐的初學者而言,也就是少了出錯的機會。而且Python還有一種互動的方式,如果是一段簡單的小程式,連編輯器都可以省了,直接敲進去就能運作。Python是一種清晰的語言,用縮進來表示程式的嵌套關系可謂是一種創舉,把過去軟性的程式設計風格更新為硬性的文法規定。再不需要在不同的風格間選擇、再不需要為不同的風格争執。

與Perl不同,Python中沒有各種隐晦的縮寫,不需要去強記各種奇怪的符号的含義。Python寫的程式很容易懂,這是不少人的共識。Python是一種面向對象的語言,但它的面向對象卻不象C++那樣強調概念,而是更注重實用。不是為了展現對概念的完整支援而把語言搞得很複雜,而是用最簡單的方法讓程式設計者能夠享受到面向對象帶來的好處,這正是Python能像Java、C#那樣吸引衆多支援者的原因之一。

Python是一種功能豐富的語言,它擁有一個強大的基本類庫和數量衆多的第三方擴充,使得Python程式員無需去羨慕Java的JDK。Python為程式員提供了豐富的基本功能使得人們寫程式時用不着一切最底層做起。說到這裡,人們通常會用一種擔心:腳本語言通常很慢。腳本語言從運作的速度講的确會慢一些,但Python的速度卻比人們想象得快很多。

雖然Python是一種腳本語言,但實際上也可以對它進行編譯,就象編譯Java程式一樣将Python程式編譯為一種特殊的ByteCode,在程式運作時,執行的是ByteCode,省去了對程式文本的分析解釋,速度自然提升很多。在用Java程式設計是,人們崇尚一種Pure Java的方式,除了虛拟機一切東西都用Java編寫,無論是基本的資料結構還是圖形界面,而Pure Java的SWING,卻成為無數Java應用開發者的噩夢。

Python崇尚的是實用,它的整體環境是用C來編寫的,很多基本的功能和擴充的子產品都是用C/C++來編寫的,當執行這一部分代碼時,它的速度就是C的速度。用Python編寫的普通桌面程式,其啟動運作速度與用C寫的程式差别不大。除了這些,通過一些第三方軟體包,用Python編寫的源代碼還可以以類似JIT的方式運作,而這可以大大提高Python代碼的運作速度,針對不同類型的代碼,會有2倍至100倍不等的速度提升。

Python是我見到過的語言中,在易用性和速度上結合的最完美的一個,通過喪失一點點經常可以忽略不計的運作速度進而獲得更高的程式設計效率,這就是我選擇Python的原因。把精力放在要解決的問題上選擇一種合适的語言,才能讓你把有限的精力放到最需要解決的問題上。不同的語言有不同的作用,C和彙編适合編寫系統軟體,如果用它們來編寫企業應用,恐怕沒幾個人能得心應手。我以前就碰到一個用彙編寫資料庫程式的哥,雖然最基本的功能完成了,但要增加個報表預覽什麼的,他就沒法應付了。

聰明的程式員是用合适的工具去完成任務,想找一把萬能鑰匙是不太可能的。Python的自動的垃圾回收機制是進階的程式設計語言的一種基本特性,用擁有這一功能的語言程式設計,程式員們通常不用去關心記憶體洩漏的問題,而當我們用C/C++寫程式時,這卻是最重要的需要認真考慮卻又很容易出錯的問題之一。資料結構是程式構成的重要部分,連結清單、樹、圖這些在用C程式設計時需要仔細表達的問題在Python中簡單了很多。在Python中,最基本的資料結構就是數組、序列和哈希表,用它們想要表達各種常見的資料結構是非常容易的。沒了定義指針、配置設定記憶體的任務,程式設計變得有趣了。CORBA是一種進階的軟體體系結構,它是語言無關平台無關的。C++、Java等語言都有CORBA綁定,但與它們相比,Python的CORBA綁定卻容易很多,因為在程式員看來,一個CORBA的類和Python的類用起來以及實作起來并沒有什麼差别。

沒了複雜體系結構的困擾,用Python編寫CORBA程式也變得容易了。好鋼要用在刀刃上,要想用有限的時間完成盡量多的任務,就要把各種無關的問題抛棄,而Python恰恰提供了這種方法。跨平台又易擴充随着Linux的不斷成熟,越來越多的人轉到Linux平台上工作,軟體的開發者自然就希望自己編寫的軟體可以在所有平台下運作。Java一次編寫處處運作的口号使它成為跨平台的開發工具的典範,但其運作速度卻不被人們看好。實際上,幾乎所有的著名腳本語言都是跨平台的,Python也不例外。Python不僅支援各種Linux/Unix系統,還支援Windows,甚至在Palm上都可以運作Python的程式。

一個程式想要跨平台工作,不僅僅需要語言本身能夠做到在平台之間相容,在圖形化界面的時代,還需要有能跨平台工作的Widget。Python不僅支援老一些的TK,還支援新的GTK+、QT以及wxWidget,而這些Widgets都可以在多個平台上工作。通過它們,程式員就可以編寫出漂亮的跨平台GUI程式。Python通常是運作在naTIve代碼與腳本代碼之間,程式員可以用C/C++為Python編寫各種各樣的子產品,這不僅可以讓程式員以Python的方式使用系統的各種服務及用C/C++編寫的優秀函數庫和類庫,還可以大幅度提高Python程式的速度。用C/C++編寫Python的子產品并不複雜,而且為了簡化這一工作,人們還制作了不少工具用來協助這一工作。

正是因為如此,現在各種常用的函數庫和類庫都有Python語言的綁定,用Python可以做到的事情越來越多了。萬能鑰匙?Python功能強大,但它卻不是萬能的。如果你要編寫作業系統或驅動程式,很顯然,Python是做不到的。要寫軟體,沒有哪個工具是萬能的,現在之是以有那麼多的程式設計語言,就是因為不同的語言适合做不同的事情。是以,選擇适合自己的語言工具是最重要的。

python能做什麼

Python具有簡單、易學、免費、開源、可移植、可擴充、可嵌入、面向對象等優點,它的面向對象甚至比java和C#.net更徹底。 作為一種通用語言,Python幾乎可以用在任何領域和場合,角色幾乎是無限的。 下面這些公司都在使用Python完成各種各樣的任務,國内:豆瓣、搜狐、金山、騰訊、盛大、網易、百度、阿裡、淘寶、熱酷、洋芋、新浪、果殼…; 國外:谷歌、NASA、YouTube、Facebook、工業光魔、紅帽… Python在軟體品質控制、提升開發效率、可移植性、元件內建、豐富庫支援等各個方面均處于先進地位。同樣學習程式設計語言,當然要選擇學習業内目前最先進、最熱門、将來應用最廣泛、最有前途和前景的程式設計語言。甚至有人預言, Python會成為繼C++和Java之後的第三個主流程式設計語言。

1、Web應用開發

伺服器端程式設計,具有豐富的Web開發架構,如Django和TurboGears,快速完成一個網站的開發和Web服務。典型如國内的豆瓣、果殼網等;國外的Google、Dropbox等。

如下圖所示:

python語言能做什麼-Python是什麼_python能做什麼

2、系統網絡運維

在運維的工作中,有大量重複性工作的地方,并需要做管理系統、監控系統、釋出系統等,将工作自動化起來,提高工作效率,這樣的場景Python是一門非常合适的語言。

如下圖所示:

python語言能做什麼-Python是什麼_python能做什麼

3、科學與數字計算

Python被廣泛的運用于科學和數字計算中,例如生物資訊學、實體、建築、地理資訊系統、圖像可視化分析、生命科學等,常用numpy、SciPy、Biopython、SunPy等。

如下圖所示:

python語言能做什麼-Python是什麼_python能做什麼

4、3D遊戲開發

Python有很好的3D渲染庫和遊戲開發架構,有很多使用Python開發的遊戲,如迪斯尼卡通城、黑暗之刃。常用PyGame、Pykyra等和一個PyWeek的比賽。

如下圖所示:

python語言能做什麼-Python是什麼_python能做什麼

5、圖形界面開發

Python可編寫桌面圖形使用者界面,還可以擴充微軟的Windows,常用Tk、GTK+、PyQt、win32等。

如下圖所示:

python語言能做什麼-Python是什麼_python能做什麼

6、網絡程式設計

除了網絡和網際網路的支援,Python還提供了對底層網絡的支援,有易于使用的Socket接口和一個異步的網絡程式設計架構Twisted Python。

如下圖所示:

python語言能做什麼-Python是什麼_python能做什麼