欧美成人精品AAA|我要看1级黄片激情一区|AV手机天堂AAA特黄|成人免费av黄色|中文字幕AV资源|看一性一级黄色毛片|亚洲精品 无码一区二区在直播间|亚洲AV无码乱码AV毛片|中文无码人妻在线|天天天天操亚洲AV女人

品牌知名度調(diào)研問卷>>

Python語言

#編程語言# 0 0
Python由荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會的吉多·范羅蘇姆于1990年代初設(shè)計(jì),作為一門叫做ABC語言的替代品。Python語法和動態(tài)類型,以及解釋型語言的本質(zhì),使它成為多數(shù)平臺上寫腳本和快速開發(fā)應(yīng)用的編程語言,隨著版本的不斷更新和語言新功能的添加,逐漸被用于獨(dú)立的、大型項(xiàng)目的開發(fā)。Python在各個編程語言中比較適合新手學(xué)習(xí)。
  • 外文名稱: Python
  • 發(fā)布時間: 1990年
  • 創(chuàng)始人: 吉多·范羅蘇姆
  • 所屬公司: Python Software Foundation
詳細(xì)介紹 PROFILE +

基本介紹

Python由荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會的吉多·范羅蘇姆于1990年代初設(shè)計(jì),作為一門叫做ABC語言的替代品。Python提供了高效的高級數(shù)據(jù)結(jié)構(gòu),還能簡單有效地面向?qū)ο缶幊獭ython語法和動態(tài)類型,以及解釋型語言的本質(zhì),使它成為多數(shù)平臺上寫腳本和快速開發(fā)應(yīng)用的編程語言,隨著版本的不斷更新和語言新功能的添加,逐漸被用于獨(dú)立的、大型項(xiàng)目的開發(fā)。

Python在各個編程語言中比較適合新手學(xué)習(xí),Python解釋器易于擴(kuò)展,可以使用C語言或C++(或者其他可以通過C調(diào)用的語言)擴(kuò)展新的功能和數(shù)據(jù)類型。Python也可用于可定制化軟件中的擴(kuò)展程序語言。Python豐富的標(biāo)準(zhǔn)庫,提供了適用于各個主要系統(tǒng)平臺的源碼或機(jī)器碼。

發(fā)展歷程

自20世紀(jì)90年代初Python語言誕生至今,它已被逐漸廣泛應(yīng)用于系統(tǒng)管理任務(wù)的處理和Web編程。

1995年,Guido van Rossum在弗吉尼亞州的國家創(chuàng)新研究公司(CNRI)繼續(xù)他在Python上的工作,并在那里發(fā)布了該軟件的多個版本。

2000年五月,Guido van Rossum和Python核心開發(fā)團(tuán)隊(duì)轉(zhuǎn)到BeOpen.com并組建了BeOpen PythonLabs團(tuán)隊(duì)。同年十月,BeOpen PythonLabs團(tuán)隊(duì)轉(zhuǎn)到Digital Creations(現(xiàn)為Zope Corporation)。

2001年,Python軟件基金會(PSF)成立,這是一個專為擁有Python相關(guān)知識產(chǎn)權(quán)而創(chuàng)建的非營利組織。Zope Corporation是PSF的贊助成員。

Python的創(chuàng)始人為荷蘭人吉多·范羅蘇姆(Guido van Rossum)。1989年圣誕節(jié)期間,在阿姆斯特丹,Guido為了打發(fā)圣誕節(jié)的無趣,決心開發(fā)一個新的腳本解釋程序,作為ABC語言的一種繼承。之所以選中單詞Python(意為大蟒蛇)作為該編程語言的名字,是因?yàn)橛?0世紀(jì)70年代首播的電視喜劇《蒙提·派森的飛行馬戲團(tuán)》(Monty Python's Flying Circus)。

ABC是由Guido參加設(shè)計(jì)的一種教學(xué)語言。就Guido本人看來,ABC這種語言非常優(yōu)美和強(qiáng)大,是專門為非專業(yè)程序員設(shè)計(jì)的。但是ABC語言并沒有成功,究其原因,Guido認(rèn)為是其非開放造成的。Guido決心在Python中避免這一錯誤。同時,他還想實(shí)現(xiàn)在ABC中閃現(xiàn)過但未曾實(shí)現(xiàn)的東西。

就這樣,Python在Guido手中誕生了??梢哉f,Python是從ABC發(fā)展起來,主要受到了Modula-3(另一種相當(dāng)優(yōu)美且強(qiáng)大的語言,為小型團(tuán)體所設(shè)計(jì)的)的影響。并且結(jié)合了Unix shell和C的習(xí)慣。

Python已經(jīng)成為最受歡迎的程序設(shè)計(jì)語言之一。自從2004年以后,python的使用率呈線性增長。Python 2于2000年10月16日發(fā)布,穩(wěn)定版本是Python 2.7。Python 3于2008年12月3日發(fā)布,不完全兼容Python 2。2011年1月,它被TIOBE編程語言排行榜評為2010年度語言。

由于Python語言的簡潔性、易讀性以及可擴(kuò)展性,在國外用Python做科學(xué)計(jì)算的研究機(jī)構(gòu)日益增多,一些知名大學(xué)已經(jīng)采用Python來教授程序設(shè)計(jì)課程。例如卡耐基梅隆大學(xué)的編程基礎(chǔ)、麻省理工學(xué)院的計(jì)算機(jī)科學(xué)及編程導(dǎo)論就使用Python語言講授。眾多開源的科學(xué)計(jì)算軟件包都提供了Python的調(diào)用接口,例如著名的計(jì)算機(jī)視覺庫OpenCV、三維可視化庫VTK、醫(yī)學(xué)圖像處理庫ITK。而Python專用的科學(xué)計(jì)算擴(kuò)展庫就更多了,例如如下3個十分經(jīng)典的科學(xué)計(jì)算擴(kuò)展庫:NumPy、SciPy和matplotlib,它們分別為Python提供了快速數(shù)組處理、數(shù)值運(yùn)算以及繪圖功能。因此Python語言及其眾多的擴(kuò)展庫所構(gòu)成的開發(fā)環(huán)境十分適合工程技術(shù)、科研人員處理實(shí)驗(yàn)數(shù)據(jù)、制作圖表,甚至開發(fā)科學(xué)計(jì)算應(yīng)用程序。2018年3月,該語言作者在郵件列表上宣布Python 2.7將于2020年1月1日終止支持。用戶如果想要在這個日期之后繼續(xù)得到與Python 2.7有關(guān)的支持,則需要付費(fèi)給商業(yè)供應(yīng)商。

產(chǎn)品設(shè)計(jì)

基本語法

Python

Python的設(shè)計(jì)目標(biāo)之一是讓代碼具備高度的可閱讀性。它設(shè)計(jì)時盡量使用其它語言經(jīng)常使用的標(biāo)點(diǎn)符號和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態(tài)語言如C、Pascal那樣需要重復(fù)書寫聲明語句,也不像它們的語法那樣經(jīng)常有特殊情況和意外。

Python開發(fā)者有意讓違反了縮進(jìn)規(guī)則的程序不能通過編譯,以此來強(qiáng)制程序員養(yǎng)成良好的編程習(xí)慣。并且Python語言利用縮進(jìn)表示語句塊的開始和退出(Off-side規(guī)則),而非使用花括號或者某種關(guān)鍵字。增加縮進(jìn)表示語句塊的開始,而減少縮進(jìn)則表示語句塊的退出??s進(jìn)成為了語法的一部分。

根據(jù)PEP的規(guī)定,必須使用4個空格來表示每級縮進(jìn)。使用Tab字符和其它數(shù)目的空格雖然都可以編譯通過,但不符合編碼規(guī)范。支持Tab字符和其它數(shù)目的空格僅僅是為兼容很舊的的Python程序和某些有問題的編輯程序。

控制語句

if語句,當(dāng)條件成立時運(yùn)行語句塊。經(jīng)常與else,elif(相當(dāng)于else if)配合使用,稱為if-elif-else語句。

for語句,遍歷列表、字符串、字典、集合等迭代器(容器),依次處理迭代器中的每個元素。有時和else連用,稱為for-else語句。

while語句,當(dāng)條件為真時,循環(huán)運(yùn)行語句塊。有時和else配合使用,稱為while-else語句。

try語句,必與except配合使用處理在程序運(yùn)行中出現(xiàn)的異常情況,稱為try-except語句。

class語句,用于定義類型。

def語句,用于定義函數(shù)和類型的方法。

pass語句,表示此行為空,不運(yùn)行任何操作。

assert語句,用于程序調(diào)試階段時測試運(yùn)行條件是否滿足。

with語句,Python2.6以后定義的語法,在一個場景中運(yùn)行語句塊。比如,運(yùn)行語句塊前加密,然后在語句塊運(yùn)行退出后解密。

yield語句,在迭代器函數(shù)內(nèi)使用,用于返回一個元素。自從Python 2.5版本以后。這個語句變成一個運(yùn)算符。

raise語句,制造一個錯誤。

import語句,導(dǎo)入一個模塊或包。

from…import語句,從包導(dǎo)入模塊或從模塊導(dǎo)入某個對象。

import…as語句,將導(dǎo)入的對象賦值給一個變量。

in語句,判斷一個對象是否在一個字符串/列表/元組里。

表達(dá)式

Python的表達(dá)式寫法與C/C++類似。只是在某些寫法有所差別。

主要的算術(shù)運(yùn)算符與C/C++類似。+,-,*,/,//,**,~,%分別表示加法或者取正、減法或者取負(fù)、乘法、除法、整除、乘方、取補(bǔ)、取余。

Python使用and,or,not表示邏輯運(yùn)算。

is,is not用于比較兩個變量是否是同一個對象。in,not in用于判斷一個對象是否屬于另外一個對象。

Python區(qū)分列表(list)和元組(tuple)兩種類型。list的寫法是[1,2,3],而tuple的寫法是(1,2,3)??梢愿淖僱ist中的元素,而不能改變tuple。在某些情況下,tuple的括號可以省略。tuple對于賦值語句有特殊的處理。因此,可以同時賦值給多個變量。

Python使用'(單引號)和"(雙引號)來表示單行字符串,用'''(三個連續(xù)單引號)和"""(三個連續(xù)雙引號)與Perl、Unix Shell語言或者Ruby、Groovy等語言不一樣,兩種符號作用相同。一般地,如果字符串中出現(xiàn)了雙引號,就使用單引號來表示字符串;反之則使用雙引號。如果都沒有出現(xiàn),就依個人喜好選擇。出現(xiàn)在字符串中的(反斜杠)被解釋為特殊字符,比如 表示換行符。表達(dá)式前加r指示Python不解釋字符串中出現(xiàn)的。這種寫法通常用于編寫正則表達(dá)式或者Windows文件路徑。

Python支持列表切割(list slices),可以取得完整列表的一部分。支持切割操作的類型有str,bytes,list,tuple等。它的語法是...[left:right]或者...[left:right:stride]。假定nums變量的值是[1,3,5,7,8,13,20],那么下面幾個語句為真:

nums[2:5]==[5,7,8]從下標(biāo)為2的元素切割到下標(biāo)為5的元素,但不包含下標(biāo)為5的元素。

函數(shù)

Python函數(shù)支持遞歸、默認(rèn)參數(shù)值、可變參數(shù),但不支持函數(shù)重載。為了增強(qiáng)代碼的可讀性,可以在函數(shù)后書寫“文檔字符串”(Documentation Strings,或者簡稱docstrings),用于解釋函數(shù)的作用、參數(shù)的類型與意義、返回值類型與取值范圍等。可以使用內(nèi)置函數(shù)help打印出函數(shù)的使用幫助。

對象的方法

對象的方法是指綁定到對象的函數(shù)。調(diào)用對象方法的語法是instance.method(arguments)。它等價于調(diào)用Class.method(instance,arguments)。當(dāng)定義對象方法時,必須顯式地定義第一個參數(shù),一般該參數(shù)名都使用self,用于訪問對象的內(nèi)部數(shù)據(jù)。這里的self相當(dāng)于C++,Java里面的this變量,但是我們還可以使用任何其它合法的參數(shù)名,比如this和 mine等,self與C++,Java里面的this不完全一樣,它可以被看作是一個習(xí)慣性的用法,我們傳入任何其它的合法名稱都行。

Python認(rèn)識一些以“__”開始并以“__”結(jié)束的特殊方法名,它們用于實(shí)現(xiàn)運(yùn)算符重載和實(shí)現(xiàn)多種特殊功能,叫做魔法方法。

類型

Python采用動態(tài)類型系統(tǒng)。在編譯的時候,Python不會檢查對象是否擁有被調(diào)用的方法或者屬性,而是直至運(yùn)行時,才做出檢查。所以操作對象時可能會拋出異常。不過,雖然Python采用動態(tài)類型系統(tǒng),它同時也是強(qiáng)類型的。Python禁止沒有明確定義的操作,比如數(shù)字加字符串。

與其它面向?qū)ο笳Z言一樣,Python允許程序員定義類型。構(gòu)造一個對象只需要像函數(shù)一樣調(diào)用類型即可,比如,對于前面定義的Fish類型,使用Fish。類型本身也是特殊類型type的對象(type類型本身也是type對象),這種特殊的設(shè)計(jì)允許對類型進(jìn)行反射編程。

Python內(nèi)置豐富的數(shù)據(jù)類型。與Java、C++相比,這些數(shù)據(jù)類型有效地減少代碼的長度。

除了各種數(shù)據(jù)類型,Python語言還用類型來表示函數(shù)、模塊、類型本身、對象的方法、編譯后的Python代碼、運(yùn)行時信息等等。因此,Python具備很強(qiáng)的動態(tài)性。

數(shù)學(xué)運(yùn)算

Python使用與C、Java類似的運(yùn)算符,支持整數(shù)與浮點(diǎn)數(shù)的數(shù)學(xué)運(yùn)算。同時還支持復(fù)數(shù)運(yùn)算與無窮位數(shù)。

fractions模塊用于支持分?jǐn)?shù)運(yùn)算;decimal模塊用于支持高精度的浮點(diǎn)數(shù)運(yùn)算。

Python定義求余運(yùn)行a%b的值處于開區(qū)間[0,b)內(nèi),如果b是負(fù)數(shù),開區(qū)間變?yōu)?b,0]。這是一個很常見的定義方式。不過其實(shí)它依賴于整除的定義。為了讓方程式:b*(a//b)+a%b=a恒真,整除運(yùn)行需要向負(fù)無窮小方向取值。比如7//3的結(jié)果是2,而(-7)//3的結(jié)果卻是-3。這個算法與其它很多編程語言不一樣,需要注意,它們的整除運(yùn)算會向0的方向取值。

Python允許像數(shù)學(xué)的常用寫法那樣連著寫兩個比較運(yùn)行符。

幫助

1.列出模塊中的函數(shù)

用import導(dǎo)入模塊后,可使用函數(shù)dir(m)列出模塊的所有函數(shù),import是導(dǎo)入模塊的命令,m是模塊名。

3.查看某個函數(shù)的文檔幫助信息

可以用函數(shù)help(函數(shù))來查看某個函數(shù)的文檔幫助信息。

接口

CGI目前由NCSA維護(hù),NCSA定義CGI如下:

CGI(Common Gateway Interface),通用網(wǎng)關(guān)接口,它是一段程序,運(yùn)行在服務(wù)器上如:HTTP服務(wù)器,提供同客戶端HTML頁面的接口。

CGI程序可以是Python腳本、Perl腳本、Shell腳本、C或者C++程序等。

服務(wù)器

在你進(jìn)行CGI編程前,確保您的Web服務(wù)器支持CGI及已經(jīng)配置了CGI的處理程序。

所有的HTTP服務(wù)器執(zhí)行CGI程序都保存在一個預(yù)先配置的目錄。這個目錄被稱為CGI目錄,并按照慣例,它被命名為/var/www/cgi-bin目錄。

CGI文件的擴(kuò)展名為.cgi,python也可以使用.py擴(kuò)展名。

默認(rèn)情況下,Linux服務(wù)器配置運(yùn)行的cgi-bin目錄中為/var/www。

特色功能

優(yōu)點(diǎn)

簡單:Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身。

易學(xué):Python極其容易上手,因?yàn)镻ython有極其簡單的說明文檔。

易讀、易維護(hù):風(fēng)格清晰劃一、強(qiáng)制縮進(jìn)

用途廣泛

速度較快:Python的底層是用C語言寫的,很多標(biāo)準(zhǔn)庫和第三方庫也都是用C寫的,運(yùn)行速度非???。

免費(fèi)、開源:Python是FLOSS(自由/開放源碼軟件)之一。使用者可以自由地發(fā)布這個軟件的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中。FLOSS是基于一個團(tuán)體分享知識的概念。

高層語言:用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)。

可移植性:由于它的開源本質(zhì),Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上)。這些平臺包括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以及Google基于linux開發(fā)的android平臺。

解釋性:一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉(zhuǎn)換到一個你的計(jì)算機(jī)使用的語言(二進(jìn)制代碼,即0和1)。這個過程通過編譯器和不同的標(biāo)記、選項(xiàng)完成。

運(yùn)行程序的時候,連接/轉(zhuǎn)載器軟件把你的程序從硬盤復(fù)制到內(nèi)存中并且運(yùn)行。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。你可以直接從源代碼運(yùn)行程序。

在計(jì)算機(jī)內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計(jì)算機(jī)使用的機(jī)器語言并運(yùn)行。這使得使用Python更加簡單。也使得Python程序更加易于移植。

面向?qū)ο螅篜ython既支持面向過程的編程也支持面向?qū)ο蟮木幊獭T凇懊嫦蜻^程”的語言中,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來的。在“面向?qū)ο蟆钡恼Z言中,程序是由數(shù)據(jù)和功能組合而成的對象構(gòu)建起來的。

Python是完全面向?qū)ο蟮恼Z言。函數(shù)、模塊、數(shù)字、字符串都是對象。并且完全支持繼承、重載、派生、多繼承,有益于增強(qiáng)源代碼的復(fù)用性。Python支持重載運(yùn)算符和動態(tài)類型。相對于Lisp這種傳統(tǒng)的函數(shù)式編程語言,Python對函數(shù)式設(shè)計(jì)只提供了有限的支持。有兩個標(biāo)準(zhǔn)庫(functools,itertools)提供了Haskell和Standard ML中久經(jīng)考驗(yàn)的函數(shù)式程序設(shè)計(jì)工具。

可擴(kuò)展性、可擴(kuò)充性:如果需要一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開,可以部分程序用C或C++編寫,然后在Python程序中使用它們。

Python本身被設(shè)計(jì)為可擴(kuò)充的。并非所有的特性和功能都集成到語言核心。Python提供了豐富的API和工具,以便程序員能夠輕松地使用C語言、C++、Cython來編寫擴(kuò)充模塊。Python編譯器本身也可以被集成到其它需要腳本語言的程序內(nèi)。因此,很多人還把Python作為一種“膠水語言”(glue language)使用。使用Python將其他語言編寫的程序進(jìn)行集成和封裝。在Google內(nèi)部的很多項(xiàng)目,例如Google Engine使用C++編寫性能要求極高的部分,然后用Python或Java/Go調(diào)用相應(yīng)的模塊。《Python技術(shù)手冊》的作者馬特利(Alex Martelli)說:“這很難講,不過,2004年,Python已在Google內(nèi)部使用,Google召募許多Python高手,但在這之前就已決定使用Python,他們的目的是Python where we can,C++ where we must,在操控硬件的場合使用C++,在快速開發(fā)時候使用Python?!?/p>

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

豐富的庫:Python標(biāo)準(zhǔn)庫確實(shí)很龐大。它可以幫助處理各種工作,包括正則表達(dá)式、文檔生成、單元測試、線程、數(shù)據(jù)庫、網(wǎng)頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統(tǒng)、GUI(圖形用戶界面)、Tk和其他與系統(tǒng)有關(guān)的操作。這被稱作Python的“功能齊全”理念。除了標(biāo)準(zhǔn)庫以外,還有許多其他高質(zhì)量的庫,如wxPython、Twisted和Python圖像庫等等。

規(guī)范的代碼:Python采用強(qiáng)制縮進(jìn)的方式使得代碼具有較好可讀性。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。Python的作者設(shè)計(jì)限制性很強(qiáng)的語法,使得不好的編程習(xí)慣(例如if語句的下一行不向右縮進(jìn))都不能通過編譯。其中很重要的一項(xiàng)就是Python的縮進(jìn)規(guī)則。一個和其他大多數(shù)語言(如C)的區(qū)別就是,一個模塊的界限,完全是由每行的首字符在這一行的位置來決定(而C語言是用一對大括號來明確的定出模塊的邊界,與字符的位置毫無關(guān)系)。通過強(qiáng)制程序員們縮進(jìn)(包括if,for和函數(shù)定義等所有需要使用模塊的地方),Python確實(shí)使得程序更加清晰和美觀。

高級動態(tài)編程:雖然Python可能被粗略地分類為“腳本語言”(script language),但實(shí)際上一些大規(guī)模軟件開發(fā)計(jì)劃例如Zope、Mnet及BitTorrent,Google也廣泛地使用它。Python的支持者較喜歡稱它為一種高級動態(tài)編程語言,原因是“腳本語言”泛指僅作簡單程序設(shè)計(jì)任務(wù)的語言,如shellscript、VBScript等只能處理簡單任務(wù)的編程語言,并不能與Python相提并論。

做科學(xué)計(jì)算優(yōu)點(diǎn)多:說起科學(xué)計(jì)算,首先會被提到的可能是MATLAB。除了MATLAB的一些專業(yè)性很強(qiáng)的工具箱還無法被替代之外,MATLAB的大部分常用功能都可以在Python世界中找到相應(yīng)的擴(kuò)展庫。和MATLAB相比,用Python做科學(xué)計(jì)算有如下優(yōu)點(diǎn):

●首先,MATLAB是一款商用軟件,并且價格不菲。而Python完全免費(fèi),眾多開源的科學(xué)計(jì)算庫都提供了Python的調(diào)用接口。用戶可以在任何計(jì)算機(jī)上免費(fèi)安裝Python及其絕大多數(shù)擴(kuò)展庫。

●其次,與MATLAB相比,Python是一門更易學(xué)、更嚴(yán)謹(jǐn)?shù)某绦蛟O(shè)計(jì)語言。它能讓用戶編寫出更易讀、易維護(hù)的代碼。

●最后,MATLAB主要專注于工程和科學(xué)計(jì)算。然而即使在計(jì)算領(lǐng)域,也經(jīng)常會遇到文件管理、界面設(shè)計(jì)、網(wǎng)絡(luò)通信等各種需求。而Python有著豐富的擴(kuò)展庫,可以輕易完成各種高級任務(wù),開發(fā)者可以用Python實(shí)現(xiàn)完整應(yīng)用程序所需的各種功能。

缺點(diǎn)

單行語句和命令行輸出問題:很多時候不能將程序連寫成一行,如import sys;for i in sys.path:print i。而perl和awk就無此限制,可以較為方便的在shell下完成簡單程序,不需要如Python一樣,必須將程序?qū)懭胍粋€.py文件。

給初學(xué)者帶來困惑:獨(dú)特的語法,這也許不應(yīng)該被稱為局限,但是它用縮進(jìn)來區(qū)分語句關(guān)系的方式還是給很多初學(xué)者帶來了困惑。即便是很有經(jīng)驗(yàn)的Python程序員,也可能陷入陷阱當(dāng)中。

運(yùn)行速度慢:這里是指與C和C++相比。Python開發(fā)人員盡量避開不成熟或者不重要的優(yōu)化。一些針對非重要部位的加快運(yùn)行速度的補(bǔ)丁通常不會被合并到Python內(nèi)。所以很多人認(rèn)為Python很慢。不過,根據(jù)二八定律,大多數(shù)程序?qū)λ俣纫蟛桓?。在某些對運(yùn)行速度要求很高的情況,Python設(shè)計(jì)師傾向于使用JIT技術(shù),或者用使用C/C++語言改寫這部分程序。可用的JIT技術(shù)是PyPy。

和其他語言區(qū)別

對于一個特定的問題,只要有一種最好的方法來解決

這在由Tim Peters寫的Python格言(稱為The Zen of Python)里面表述為:There should be one-and preferably only one-obvious way to do it。這正好和Perl語言(另一種功能類似的高級動態(tài)語言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。

Python的設(shè)計(jì)哲學(xué)是“優(yōu)雅”、“明確”、“簡單”。因此,Perl語言中“總是有多種方法來做同一件事”的理念在Python開發(fā)者中通常是難以忍受的。Python開發(fā)者的哲學(xué)是“用一種方法,最好是只有一種方法來做一件事”。在設(shè)計(jì)Python語言時,如果面臨多種選擇,Python開發(fā)者一般會拒絕花俏的語法,而選擇明確的沒有或者很少有歧義的語法。由于這種設(shè)計(jì)觀念的差異,Python源代碼通常被認(rèn)為比Perl具備更好的可讀性,并且能夠支撐大規(guī)模的軟件開發(fā)。這些準(zhǔn)則被稱為Python格言。在Python解釋器內(nèi)運(yùn)行import this可以獲得完整的列表。

更高級的Virtual Machine

Python在執(zhí)行時,首先會將.py文件中的源代碼編譯成Python的byte code(字節(jié)碼),然后再由Python Virtual Machine(Python虛擬機(jī))來執(zhí)行這些編譯好的byte code。這種機(jī)制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine與Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一種更高級的Virtual Machine。這里的高級并不是通常意義上的高級,不是說Python的Virtual Machine比Java或.NET的功能更強(qiáng)大,而是說和Java 或.NET相比,Python的Virtual Machine距離真實(shí)機(jī)器的距離更遠(yuǎn)?;蛘呖梢赃@么說,Python的Virtual Machine是一種抽象層次更高的Virtual Machine?;贑的Python編譯出的字節(jié)碼文件,通常是.pyc格式。除此之外,Python還可以以交互模式運(yùn)行,比如主流操作系統(tǒng)Unix/Linux、Mac、Windows都可以直接在命令模式下直接運(yùn)行Python交互環(huán)境。直接下達(dá)操作指令即可實(shí)現(xiàn)交互操作。

本百科詞條由網(wǎng)站注冊用戶【 CN106114 】編輯上傳提供,當(dāng)前頁面所展示的詞條介紹涉及宣傳內(nèi)容屬于注冊用戶個人編輯行為,網(wǎng)站不完全保證內(nèi)容信息的準(zhǔn)確性、真實(shí)性,也不代表本站立場。 版權(quán)聲明 反饋 我要認(rèn)領(lǐng)
最新評論
相關(guān)知識文章
十大熱門編程語言排名 編程語言排行榜 編程語言哪個前景好〈2026〉
全世界有數(shù)種編程語言,但最常用的還是那幾種。如今隨著時代的發(fā)展,一些編程語言的受歡迎程度也發(fā)生著微妙的變化。本文中maiGoo小編就帶大家看看當(dāng)下最具影響力的編程語言有哪些,例如Python、C、C++、Java、C#、JavaScript、Visual Basic、PHP等,仍具有一定代表性,仍是現(xiàn)在最流行的編程語言。
十大二手書交易平臺 舊書網(wǎng)站推薦 賣二手書去哪個網(wǎng)站好[2026]
二手書交易網(wǎng)站有哪些?賣二手書去哪個網(wǎng)站好?Maigoo小編為大家?guī)砹耸蠖謺灰拙W(wǎng)站,如:多抓魚、孔夫子舊書網(wǎng)、舊書街、小谷吖、閑魚賣書、漫鯨游、7788舊書等,一起來看看吧。
十大游戲交易平臺排行榜 正規(guī)游戲賬號交易平臺 熱門游戲交易平臺(2026)
游戲交易平臺有哪些?游戲交易的平臺哪個好?Maigoo小編今天為大家?guī)砹耸笥螒蚪灰灼脚_,包括:交易貓、5173、盼之、藏寶閣、螃蟹游戲服務(wù)網(wǎng)、淘手游、7881等,一起來看看吧。
十大編程軟件排行榜 編程開發(fā)工具大全 c語言編程軟件有哪些[2026]
世界上主流的編程語言有C、Java、Python、C++、C#、Visual Basic、PHP等,針對這些編程語言,又有相對應(yīng)的編程開發(fā)工具被廣泛運(yùn)用。那么你知道主流的編程軟件有哪些嗎?下面maigoo網(wǎng)編輯為大家盤點(diǎn)常見的十大編程工具,包括Visual Studio、IntelliJ IDEA、PyCharm、WebStorm、Android Studio、Xcode等,一起來了解下吧。
十大天氣預(yù)報APP 好用的天氣app排行 天氣預(yù)報軟件哪個最準(zhǔn)確(2026)
出門看天氣是許多人常做的一件事,不過市面上有各種天氣預(yù)報類軟件,到底天氣預(yù)報軟件哪個比較準(zhǔn)呢?下面小編為大家分享十大好用的天氣預(yù)報APP,包括墨跡天氣、彩云天氣、天氣通、2345天氣王、準(zhǔn)時天氣、最美天氣等,一起來了解下吧!
十大發(fā)型設(shè)計(jì)軟件 測臉型配發(fā)型軟件叫啥 測適合自己發(fā)型的軟件推薦〈2026〉
我國美容美發(fā)已達(dá)到3500億元以上的市場規(guī)模,并處于不斷增長中。在這個具備千億產(chǎn)值的行業(yè)里,發(fā)型設(shè)計(jì)軟件是一個較新的領(lǐng)域,還有很大的發(fā)展空間。這類軟件一定程度上能幫助個人無成本嘗試新發(fā)型,同時亦具有娛樂性。下面和maigoo小編來看看發(fā)型屋、美可發(fā)型、試發(fā)型相機(jī)、測臉型等臉型測試配發(fā)型的軟件!
十大解壓軟件 解壓縮軟件哪個好用 文件壓縮軟件哪個好[2026]
在這個信息碎片化的時代,電腦上各種類型的文件數(shù)不勝數(shù),一款好用的壓縮軟件,既能以較高質(zhì)量集合保存?zhèn)€人信息,又能節(jié)省硬盤空間;縱觀全網(wǎng),備受推崇的解壓縮軟件有WinRAR、7-zip、2345好壓、360壓縮、Bandizip、快壓、WinZip、PeaZip等,下面跟隨MaiGoo網(wǎng)編輯了解下這些解壓軟件!
十大ppt模板網(wǎng)站排行 好用的ppt網(wǎng)站推薦 ppt模板下載網(wǎng)站有哪些〈2026〉
一個優(yōu)秀的PPT,雖然不能決定你的成與敗,但能直接影響觀看者對你的工作能力、產(chǎn)品或服務(wù)的認(rèn)同感,特別是在產(chǎn)品發(fā)布、路演、招商引資等場合。本文中maigoo網(wǎng)編輯盤點(diǎn)了OfficePLUS、攝圖網(wǎng)PPT、包圖網(wǎng)PPT、優(yōu)品PPT、51PPT、第一PPT、稻殼兒、迅捷PPT、51PPT等ppt模板下載網(wǎng)站、ppt素材網(wǎng)站,下面一起看看!
十大去馬賽克軟件排行 視頻去馬賽克軟件哪個好用[2026]
去馬賽克軟件有哪些?視頻去馬賽克軟件哪個好用?Maigoo小編為大家?guī)砹耸笕ヱR賽克軟件排行,如Lada、JavPlayer、DeepMosaics、CodeFormer、Topaz Video AI、HitPaw VikPea、DeepCreamPy等,一起來看看吧。
十大游戲陪玩軟件排行 游戲陪練app哪個好 陪玩打游戲的軟件〈2026〉
隨著國內(nèi)游戲陪玩市場的不斷完善,各大游戲陪玩平臺也在不斷洗牌,那么當(dāng)下最火的游戲陪玩軟件有哪些呢?下面maiGoo小編為大家盤點(diǎn)十大游戲陪練app,包括斗魚一起玩、小鹿組隊(duì)、點(diǎn)點(diǎn)開黑、哈哈喵開黑、獵游、撈月狗等,一起來了解下吧。
十大動畫制作軟件 動漫制作軟件盤點(diǎn) 自己做動畫的軟件有哪些[2026]
動畫制作分為二維動畫與三維動畫技術(shù),涉及軟件主要分為2D和3D二種類型。在動畫行業(yè)中制作動畫的軟件種類越來越多,越來越豐富,你知道哪個動畫制作軟件比較好用?畫動漫軟件哪個好?下面MAIGOO小編就為大家介紹十大最好用動畫制作軟件,分別有Autodesk Maya、Adobe Animate、3DS Max、AE、C4D、Blender、Harmony、Cascadeur?、TVP、Dragonframe。
十大批發(fā)網(wǎng)站 進(jìn)貨批發(fā)網(wǎng)站哪個好 批發(fā)進(jìn)貨平臺有哪些[2026]
國家統(tǒng)計(jì)局?jǐn)?shù)據(jù)顯示,我國批發(fā)和零售業(yè)從業(yè)人員據(jù)不完全統(tǒng)計(jì),已達(dá)千萬人次,其中主要集中在小商品、玩具、服裝、食品等領(lǐng)域。那么國內(nèi)有哪些批發(fā)平臺?進(jìn)貨批發(fā)網(wǎng)站哪個好?下面maigoo編輯為大家盤點(diǎn)國內(nèi)十大批發(fā)網(wǎng)站,包括阿里巴巴1688、拼多多批發(fā)、義烏購、愛采購、義采寶、惠農(nóng)網(wǎng)、貨捕頭等采購批發(fā)平臺,一起來了解下!
十大舊衣服回收平臺 有償回收舊衣服的平臺 正規(guī)回收舊衣服機(jī)構(gòu)〈2026〉
我國每年有數(shù)萬噸舊衣服進(jìn)入垃圾場,極少數(shù)能被回收利用。其實(shí)我們可以把舊衣服捐給貧困地區(qū),也可以二手轉(zhuǎn)賣。下面MaiGoo小編和大家一起看看舊衣物回收平臺有哪些,一起了解下飛螞蟻、白鯨魚、鷗燕回收、92回收、噢啦OOLA等正規(guī)回收舊衣服機(jī)構(gòu)。
十大網(wǎng)絡(luò)電話軟件 網(wǎng)絡(luò)電話哪個軟件好用 網(wǎng)絡(luò)電話呼叫軟件推薦〈2026〉
工信部針對通信業(yè)的相關(guān)報告顯示,我國三家通訊商的移動電話用戶總數(shù)已超過17.07億,面對龐大的用戶群體,除了手機(jī)實(shí)時電話通訊外,網(wǎng)絡(luò)電話呼叫軟件亦成為主流選擇?,F(xiàn)階段,除了微信、QQ等具有語音功能的社交軟件外,Skype、北瓜電話、Facetime、UU電話等網(wǎng)絡(luò)電話軟件的使用頻率也相對較高,下面跟隨maigoo編輯來看看!
十大室內(nèi)設(shè)計(jì)軟件 裝修設(shè)計(jì)軟件排名 家裝設(shè)計(jì)軟件哪個最好用[2026]
室內(nèi)設(shè)計(jì)是一個專業(yè)性極強(qiáng)的領(lǐng)域,設(shè)計(jì)師要在安全、實(shí)用、有限預(yù)算的前提下,充分考慮空間、色彩、光影、裝飾、陳設(shè)、綠化等要素進(jìn)行設(shè)計(jì)。那么在當(dāng)今室內(nèi)設(shè)計(jì)領(lǐng)域,有哪些好用的裝修設(shè)計(jì)軟件呢?3DS MAX、AutoCAD、草圖大師、Photoshop、ArchiCAD、Vray、Lightscape、Sweet Home 3D等室內(nèi)設(shè)計(jì)軟件如何?下面跟隨買購網(wǎng)編輯一起看看!
十大建模軟件排行榜 3d建模軟件有哪些 3d制圖軟件哪個好[2026]
3d建模軟件有哪些?3d制圖軟件哪個好?Maigoo小編今天為大家?guī)砹耸蠼\浖?,包括:Cinema 4D、Blender、Maya、3ds Max、ZBrush、Rhinoceros、SketchUp等,一起來看看吧。
十大日本購物網(wǎng)站排名 日本代購網(wǎng)站推薦 日本網(wǎng)上購物平臺有哪些[2026]
日本網(wǎng)上購物平臺有哪些?日本購物網(wǎng)站哪個好?Maigoo小編為大家?guī)砹耸笕毡举徫锞W(wǎng)站,如:Amazon Japan、日本樂天、雅虎購物、Mercari、ZOZOTWON、松本清、Kakaku等,一起來看看吧。
十大圍棋軟件排名 下圍棋軟件哪個好 學(xué)圍棋app推薦〈2026〉
在手機(jī)或電腦上下圍棋、象棋、五子棋,或是下跳棋、軍棋等,都非常常見。圍棋軟件拉進(jìn)了棋友們的距離,即使天各一方,也能連上網(wǎng)絡(luò)下一盤棋。下面CNPP小編和大家一起看看圍棋軟件哪個好。相對知名的下圍棋軟件有弈客圍棋、星陣圍棋、弈城圍棋、佳弈少兒圍棋、忘憂圍棋等。
十大攝影網(wǎng)站排名 高清攝影網(wǎng)站推薦 攝影作品網(wǎng)站有哪些[2026]
攝影作品網(wǎng)站有哪些?攝影師必用網(wǎng)站哪個好?Maigoo小編為大家?guī)砹耸髷z影網(wǎng)站,如:瑪格南圖片社、光圈、1X、Flickr、LensCulture、500px攝影社區(qū)、Behance等,一起來看看吧。
十大域名網(wǎng)站排名 中文域名購買網(wǎng)站盤點(diǎn) 域名注冊服務(wù)網(wǎng)站哪個好〈2026〉
中國信通院《互聯(lián)網(wǎng)域名產(chǎn)業(yè)報告》顯示,我國已成為僅次于美國的第二大域名注冊市場,其中中文域名的注冊量已達(dá)到100萬以上,能在世界上的任何地方實(shí)時訪問。本文中maigoo編輯盤點(diǎn)了一批域名注冊服務(wù)網(wǎng)站,如GoDaddy、萬網(wǎng)、西部數(shù)碼、新網(wǎng)、NameSilo、Namecheap、易名等域名注冊商、英文/中文域名網(wǎng)站的市場份額較高,一起看看。
相關(guān)主題榜單
熱門榜單
百科榜單
熱門知識分類
行業(yè)品牌展示位
MAIGOO百科詞條為用戶上傳提供或網(wǎng)站編輯整理匯總,目的在于為廣大用戶免費(fèi)提供百科知識,如果您有想創(chuàng)建的詞條或?qū)δ硞€詞條有建議,請通過下面方式提交。
提交詞條 查詢詞條 我要糾錯 賺取金幣