當前位置:成語大全網 - 書法字典 - python是壹種什麽樣的編程語言?

python是壹種什麽樣的編程語言?

python是壹種什麽樣的編程語言?Python是壹種計算機編程語言,也是壹種面向對象的動態強類型腳本語言(解釋型語言)。腳本語言:壹般來說,它也是壹種解釋性語言。

優勢

簡單:Python是壹種代表簡單思想的語言。讀好的Python程序就像讀英語壹樣。它能讓妳專註於解決問題,而不是理解語言本身。

易學:Python非常容易使用,因為Python的文檔非常簡單。

易於閱讀和維護:清晰統壹的風格,強制縮進。

廣泛使用

速度:Python的底層是用C語言寫的,很多標準庫和第三方庫也是用C寫的,運行速度很快。

免費開源:Python是FLOSS(免費/開源軟件)的壹種。用戶可以自由分發該軟件的副本,閱讀其源代碼,對其進行修改,並在新的自由軟件中使用其中的壹部分。FLOSS基於壹個群體共享知識的概念。

高級語言:用Python寫程序的時候,不需要考慮如何管理程序使用的內存等底層細節。

可移植性:由於其開源的特性,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和谷歌基於Linux的android平臺。

說明:用C或C++等編譯語言編寫的程序,可以從源文件(即C或C++語言)轉換成妳的計算機使用的語言(二進制代碼,即0和1)。這個過程是由編譯器和不同的標簽和選項來完成的。

當運行程序時,鏈接器/加載器軟件將妳的程序從硬盤復制到內存並運行它。用Python語言寫的程序不需要編譯成二進制代碼。妳可以直接從源代碼運行程序。

在計算機內部,Python解釋器將源代碼轉換成稱為字節碼的中間形式,然後翻譯成計算機使用的機器語言並運行。這使得使用Python變得更加容易。這也使得Python程序更容易移植。

面向對象:Python支持面向過程編程和面向對象編程。在“面向過程”的語言中,程序是由壹個過程或者僅僅是壹個可重用代碼的函數構建的。在“面向對象”語言中,程序是由數據和函數組成的對象構建的。

Python是壹種完全面向對象的語言。函數、模塊、數字和字符串都是對象。並且完全支持繼承、重載、派生和多重繼承,有利於增強源代碼的可重用性。Python支持重載運算符和動態類型。與傳統的函數式編程語言Lisp相比,Python只對函數式設計提供了有限的支持。有兩個標準庫(functools、itertools)提供了Haskell和標準ML中經過驗證的函數式編程工具。

擴展性:如果妳需要壹段關鍵代碼運行得更快,或者想讓某些算法保密,可以用C或者C++寫壹些程序,然後在Python程序中使用。

Python本身被設計成可擴展的。並非所有特性和功能都集成到語言核心中。Python提供了豐富的API和工具,使得程序員可以方便地使用C語言、C++和Cython編寫擴展模塊。Python編譯器本身也可以集成到其他需要腳本語言的程序中。所以很多人還是把Python當做“膠水語言”。使用Python來集成和打包用其他語言編寫的程序。Google內部的很多項目,比如Google Engine,都是用C++編寫性能要求高的部分,然後用Python或者Java/Go調用相應的模塊。《Python技術手冊》的作者馬特爾(Martell)說,“這很難說,但在2004年,Python就已經在谷歌上了?對於內部使用,谷歌已經招募了許多Python專家,但在此之前,它已經決定使用Python。他們的目的是在我們可以的地方使用Python,在我們必須的地方使用C++,在操縱硬件時使用c++,在快速開發時使用Python。”

可嵌入性:Python可以嵌入到C/C++程序中,從而為程序用戶提供腳本功能。

豐富的庫:Python標準庫真的很龐大。它可以幫助處理各種工作,包括正則表達式、文檔生成、單元測試、線程、數據庫、web瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk等系統相關操作。這被稱為Python的“全功能”概念。除了標準庫,還有很多其他高質量的庫,比如wxPython、Twisted和Python圖像庫等。

標準化代碼:Python使用強制縮進使代碼可讀。用Python語言寫的程序不需要編譯成二進制代碼。Python的作者設計了壹個非常嚴格的語法,這樣不良的編程習慣(比如語句的下壹行沒有向右縮進)就無法編譯。其中最重要的壹項是Python的縮進規則。與大多數其他語言(如C)的壹個區別是,模塊的邊界完全由該行每壹行的第壹個字符的位置決定(而C使用壹對花括號來明確定義模塊的邊界,與字符的位置無關)。Python確實通過強制程序員縮進(包括所有需要模塊的地方,比如if、for、函數定義)讓程序更清晰美觀。

高級動態編程:雖然Python可能被粗略歸類為“腳本語言”,但實際上壹些大型軟件開發計劃如Zope、Mnet、BitTorrent等也被Google廣泛使用。Python的支持者更願意稱之為高級動態編程語言,因為“腳本語言”指的是只做簡單編程任務的語言,如shellscript、VBScript等只能處理簡單任務的編程語言,無法與Python相提並論。

科學計算的好處有很多:說到科學計算,可能首先會提到MATLAB。除了MATLAB的壹些專業工具箱無法替換外,MATLAB的大部分常用函數都可以在Python世界中找到相應的擴展庫。與MATLAB相比,使用Python進行科學計算有以下優勢:

●首先,MATLAB是商業軟件,價格昂貴。Python是完全免費的,很多開源科學計算庫都提供了Python調用接口。用戶可以在任何電腦上免費安裝Python及其大部分擴展庫。

其次,與MATLAB相比,Python是壹種更易學、更嚴謹的編程語言。它使用戶能夠編寫更具可讀性和可維護性的代碼。

●最後,MATLAB主要側重於工程和科學計算。然而,即使在計算領域,我們也經常會遇到文件管理、界面設計和網絡通信等各種需求。Python擁有豐富的擴展庫,可以輕松完成各種高級任務,開發者可以利用Python實現壹個完整應用所需的各種功能。

劣勢

單行語句和命令行輸出問題:很多時候不能把程序連成壹行,比如導入sys對於系統路徑中的I:打印I .而Perl和awk則沒有這個限制,可以在shell下輕松完成簡單的程序,不用像Python壹樣把程序寫成. py文件。

初學者的困惑:獨特的語法,可能不叫限制,但是它用縮進來區分句子關系的方式還是給很多初學者帶來了困惑。即使是經驗豐富的Python程序員也可能落入陷阱。

運行速度慢:與C和C++相比。Python開發者試圖避免不成熟或不重要的優化。壹些為不重要的部分加速運行的補丁通常不會並入Python。所以很多人覺得Python慢。但根據二八定律,大部分程序並不要求高速。Python的設計者在壹些運行速度非常高的情況下,傾向於使用JIT技術或者使用C/C++語言重寫這部分程序。可用的JIT技術是PyPy。

不同於其他語言

對於壹個具體的問題,只要有壹個最好的解決方法。

這在Tim Peters寫的Python格言(稱為Python的禪)中表達為:應該有壹種——而且最好只有壹種——顯而易見的方法。這與Perl語言(另壹種具有類似功能的高級動態語言)TMTOWTDI(不止壹種方法)的中心思想完全相反。

Python的設計理念是“優雅”、“清晰”、“簡潔”。因此,Perl語言中“做同壹件事總有多種方法”的思想通常是Python開發者無法忍受的。Python開發者的理念是“用壹種方式做壹件事,最好只有壹種方式”。在設計Python語言時,如果面臨多種選擇,Python開發者壹般會拒絕花哨的語法,選擇沒有或很少歧義的顯式語法。由於這種設計理念上的差異,Python源代碼通常被認為比Perl可讀性更好,可以支持大規模的軟件開發。這些準則被稱為Python準則。在Python解釋器中運行import this以獲得完整的列表。

更高級的虛擬機

當Python執行時。py文件會被編譯成Python字節碼,然後Python虛擬機(Python Virtual Machine)會執行這些編譯好的字節碼。這種機制的基本思想與Java和。網。但是,Python虛擬機不同於Java或。NET虛擬機中的那個Python虛擬機是比較高級的虛擬機。這裏的高級不是通常意義上的高級,不是說Python的虛擬機比Java或者。NET,但Python的虛擬機比Java或。網。或者可以說Python的虛擬機是更高層次的抽象。Python基於C編譯的字節碼文件,通常在。pyc格式。此外,Python還可以在交互模式下運行。比如Unix/Linux、Mac、Windows等主流操作系統都可以直接在命令模式下運行Python交互環境。交互操作可以通過直接發布操作指令來實現。