




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Python——新語言,新平臺Python——新語言,新平臺1大綱起源特性用途不足如何學習大綱起源2起源作者:GuidoVanRossum(GvR)/~guido/名字的讀法“仁慈的終身獨裁者”
BenevolentDictatorForLife
他持續(xù)關注Python的開發(fā)進程,指導支持 Python開源社區(qū)的活動,并在必要的時刻做出決定。
目前在
工作起源作者:GuidoVanRossum(GvR)3得名“1989年12月,我在尋找一門“課余”編程項目來打發(fā)圣誕節(jié)前后的時間。我的辦公室會關門,但我有一臺家用電腦,而且沒有太多其它東西。我決定為當時我正構思的一個新的腳本語言寫一個解釋器,它是ABC語言的后代,對UNIX/C程序員會有吸引力。作為一個略微有些無關想法的人,和一個蒙提·派森(MontyPython)的飛行馬戲團的狂熱愛好者,我選擇了Python作為項目的標題?!钡妹?989年12月,我在尋找一門“課余”編程項目來打發(fā)圣4每個人都會ComputerProgrammingforEverybody1999年,Guido向DARPA
闡述Python語言的特性:
簡單、直觀、強大
開源,以便任何人都可以為它做貢獻
代碼像純英語那樣容易理解
適用于短期開發(fā)的日常任務這些想法中的一些已經成為現(xiàn)實。Python已經成為一門流行的編程語言,尤其是在互聯(lián)網環(huán)境下。每個人都會ComputerProgrammingfor5大綱起源特性用途不足如何學習大綱起源6特性交互式命令行(Interactiveconsole)不只是腳本強大易用的標準庫膠水語言(gluelanguage)收放自如(scalability)不要括號vsPerlvsRuby特性交互式命令行(Interactiveconsole)7交互式命令行(Interactiveconsole)Python可以單步直譯運行。運行Python解釋器進入交互式命令行的環(huán)境,你可以在提示符號>>>旁輸入代碼,按Enter鍵輸出結果:>>>print("Hello,Python!")Hello,Python!有點像Shell腳本的執(zhí)行方式。交互式命令行(Interactiveconsole)Pyt8不只是腳本原因是“腳本語言”泛指僅作簡單編程任務的語言,如Linuxshellscript、JavaScript等,它們只能處理簡單的任務而Python是面向對象編程(OOP)的,支持異常處理和類型檢查Python的支持者較喜歡稱它為一種高階動態(tài)編程語言不只是腳本原因是“腳本語言”泛指僅作簡單編程任務的語言,9強大易用的標準庫核心庫不超過10MbHtml、Xml解析:BeautifulSoup,Expat字符串處理:字典、數(shù)組切片、正則表達式re單元測試:PyUnit代碼版本控制:PySVN網絡訪問:urllib2圖形模塊:Tkinter、PyTCL、WxPython串行化、多線程等擴展標準庫十分容易強大易用的標準庫核心庫不超過10Mb10膠水語言(gluelanguage)Python經常用作將不同語言編寫的程序“粘”在一起的膠水語言。Google內部的很多項目使用C++編寫性能要求極高的部分,然后用Python調用相應的模塊。C/C++: Boost.Python使得Python和C++的類庫能互相調用(.pyc)Java: Jython是用Java實現(xiàn)的Python,可同時使用二者的類庫.NET: IronPython是Python在.NET平臺上的版本。膠水語言(gluelanguage)Python經常用作將11收放自如(scalability)Python內建的數(shù)據結構(variable,list和dict)以及對多線程分布式操作的支持,使得程序可以用相同的代碼處理不同規(guī)模的數(shù)據,以及并發(fā)的用戶需求。GoogleAppEngine/intl/zh-CN/appengine/收放自如(scalability)Python內建的數(shù)據結構12不要括號Python使用縮進而不是括號來進行代碼段標識,減少了視覺上的混亂,并且使程序變短,從而提高了程序的可讀性。不要括號Python使用縮進而不是括號來進行代碼段標識,減少13vs.PerlPerl是另一種廣泛使用(濫用)的動態(tài)高級語言,經常被用來與Python比較。
正則表達式的典范
催生了CGI、PHP
黑客最喜愛的語言LarryWall
Perl語言之父,語言學家/~larry/兩屆國際C語言混亂代碼大賽(IOCCC)的冠軍第一屆自由軟件獎得主vs.PerlPerl是另一種廣泛使用(濫用)的動態(tài)高級語14程序員的三大美德懶惰:能讓人盡量減少總能量支出的美德。它使你寫出節(jié)省腦力、可以重用的代碼;也督促你為程序寫注釋和文檔,那樣你就不用回答各種問題。所以它是程序員的第一大美德。所以有了這本書。參見下兩條。不耐煩:當電腦想偷懶時你爆發(fā)的怒氣.它使你寫的代碼能主動預測、而非被動滿足用戶需求,至少裝作是這樣。所以它是程序員的第二大美德。
參見懶惰和傲慢。傲慢:自傲到人神共憤的程度,也是一種品質,能使你編寫(維護)的程序讓人無可指摘。所以它是程序員的第三大美德.參見前兩條。
程序員的三大美德懶惰:能讓人盡量減少總能量支出的美德。它使你15觀點Perl之父LarryWall:
“做一件事有很多種方法”Python資深開發(fā)者TimPeters:
“做一件事,應該有一種最直觀的方法,而且最好只有一種?!盤ython之父GuidoVanRossum:
“做一件事情只有一種方法”觀點Perl之父LarryWall:16vs.RubyRuby:比Python更年輕的動態(tài)語言完全面向對象支持正則表達式整合了多種語言的優(yōu)勢RubyonRails網站快速開發(fā)工具
松本行弘(“Matz”)“不要重復自己”vs.RubyRuby:比Python更年輕的動態(tài)語言17國籍?語言作者作者國籍編程風格PerlLarryWall美國隨性自由PythonGuidovanRossum荷蘭優(yōu)雅統(tǒng)一Ruby松本行弘(“Matz”)日本兼容并包國籍?語言作者作者國籍編程風格PerlLarryWall美18大綱起源特性用途不足如何學習大綱起源19用途腳本程序大型程序的原型開發(fā)科學計算網絡應用計算機圖形編程用途腳本程序20知名的Python應用Zope:
一個應用程序服務器,具有內容管理、團隊開發(fā)、XML、面向對象、SOAP接口等一系先進特性,開源。Gadfly:/gadfly.html
一個用Python寫的面向對象關系型數(shù)據庫,具有小巧、快速、可移植性好的
特點,具有大部分SQL語言特性。開源。Wallbase: Python編寫的圖片站點。uTorrent
: BitTorrent下載軟件,主程序僅2Mb,支持ipv6地址解析。開源。Torchlight: Python編寫的大型3D游戲,原Blizzard公司人員制作發(fā)行,開源。知名的Python應用Zope:21GoogleAppsEngine“GoogleAppEngine可讓您在Google的基礎架構上運行您的網絡
應用程序。AppEngine應用程序易于構建和維護,并可根據您的訪
問量和數(shù)據存儲需要的增長輕松擴展。使用GoogleAppEngine,
將不再需要維護服務器:您只需上傳您的應用程序,它便可立即為您的用戶提供服務。” Python為GAE的數(shù)據存儲區(qū)、Google帳戶、網址抓取和電子郵件服務提供了豐富的PythonAPI。GAE還提供了一個稱為
webapp
的簡單Python網絡應用程序框架,從而可以輕松開始構建應用程序。GoogleAppsEngine“GoogleApp22GAE的主要服務動態(tài)網絡服務,提供對常用網絡技術的完全支持持久存儲空間,支持查詢、分類和事務自動擴展和負載平衡用戶身份驗證和使用Google帳戶發(fā)送電子郵件的API一套在本地模擬GAE的開發(fā)環(huán)境用于在指定時間和定期觸發(fā)事件的計劃任務GAE的主要服務動態(tài)網絡服務,提供對常用網絡技術的完全支持23兩個例子“集體智慧編程”根據品味相似度進行電影推薦(第2章)家族旅行問題的最優(yōu)化算法(第5章)兩個例子“集體智慧編程”24根據品味相似度進行電影推薦基本思路:
從一大群人中找出與我們品味相近的一小群人,對這些人所喜愛的其他內容進行考查,并把它們組合起來創(chuàng)建一個經過排名的推薦列表。(協(xié)作過濾CollaborativeFiltering)步驟: 1.搜集偏好 2.尋找相似的用戶 3.推薦電影
根據品味相似度進行電影推薦基本思路:25搜集偏好首先找到一種表示不同人及其偏好的電影的方法??梢允褂萌藢撞侩娪暗脑u分來刻畫他們的偏好,評分從1到5,分數(shù)越高,表示某人對該電影越喜歡。如何建立這種從人到電影的對應關系?Python中有一個很簡單的方法來表示這種數(shù)據結構:使用嵌套的字典。搜集偏好首先找到一種表示不同人及其偏好的電影的方法。26搜集偏好創(chuàng)建名為recommandations.py的數(shù)據文件:critics={'LisaRose':{'LadyintheWater':2.5,'SnakesonaPlane':3.5,'JustMyLuck':3.0,'SupermanReturns':3.5,'You,MeandDupree':2.5,'TheNightListener':3.0},'GeneSeymour':{'LadyintheWater':3.0,'SnakesonaPlane':3.5,'JustMyLuck':1.5,'SupermanReturns':5.0,'TheNightListener':3.0,'You,MeandDupree':3.5}'Toby':{'SnakesonaPlane':4.5,'You,MeandDupree':1.0,'SupermanReturns':4.0}}}搜集偏好創(chuàng)建名為recommandations.py的數(shù)據27搜集偏好我們可以使用交互控制臺對字典的數(shù)據進行查詢和修改:>>fromrecommendationsimportcritics>>critics['LisaRose']['LadyintheWater']2.5>>critics['Toby']['SnakesonaPlane']=4.5>>critics['Toby']{'SnakesonaPlane':4.5,'You,MeandDupree':1.0}搜集偏好我們可以使用交互控制臺對字典的數(shù)據進行查詢和修改:28尋找相似的用戶收集了人們的偏好數(shù)據后,我們需要方法來計算某兩個人電影品味的相似度。有兩種基本的方法可以實現(xiàn)這個目的:歐幾里得距離皮爾遜相關度尋找相似的用戶收集了人們的偏好數(shù)據后,我們需要方法來計算某兩29歐幾里得距離評價以二維空間中的情形為例:設坐標軸為人們都評價過的兩部電影,然后將參與評價的人根據他們對這兩部電影的評分繪制到圖上,并考察他們彼此間的距離,如圖:圖中的點距離越近,表明兩個人的偏好越接近。推廣到多維向量空間,歐幾里得法可表示為:計算每一軸上兩點的差值求平方,再將各軸相加,最后取平方根。歐幾里得距離評價以二維空間中的情形為例:設坐標軸30歐幾里得距離評價如計算Toby和LaSalle的距離:>>frommathimportsqrt>>sqrt(pow(5-4,2)+pow(4-1,2))3.1622776601683795為了給偏好接近的情況給出較大的值,可取該值的倒數(shù),并+1避免除數(shù)為0:>>1/(1+sqrt(pow(5-4,2)+pow(4-1,2)))0.2402530733520421歐幾里得距離評價如計算Toby和LaSalle的距離:31歐幾里得距離評價使用這種方法構造出如下相似度函數(shù):defsim_distance(prefs,person1,person2):#得到共同的電影si={}foriteminprefs[person1]:ifiteminprefs[person2]:si[item]=1#如果沒有共同的電影則返回0iflen(si)==0:return0#計算歐幾里得距離,返回相似度
Sum_of_squares=sum([pow(prefs[person1][item]-prefs[person2][item],2)foriteminprefs[person1]ifiteminprefs[person2]])return1/(1+sum_of_squares)歐幾里得距離評價使用這種方法構造出如下相似度函數(shù):32皮爾遜相關度皮爾遜相關系數(shù)是一種更復雜的方法,它通過計算兩組數(shù)據與某一直線擬合的程度來判斷它們的相似程度。該方法有助于克服所謂的“夸大評價”現(xiàn)象對結果的影響。右圖中,雖然Jack對電影的評價比Lisa更為極端(更容易給出高分和低分),但這個坐標系中的點都相當靠近擬合曲線(圖中虛線),可以說兩人的品味較為相近。皮爾遜相關度皮爾遜相關系數(shù)是一種更復雜的方法,它通過計算兩組33皮爾遜相關度使用如下函數(shù)計算皮爾遜相關度,該函數(shù)返回一個-1到1的值:defsim_pearson(prefs,p1,p2):#得到共同評價的電影si={}foriteminprefs[p1]:ifiteminprefs[p2]:si[item]=1#如果沒有共同評價的電影,返回0iflen(si)==0:return0#將兩人的偏好相加sum1=sum([prefs[p1][it]foritinsi])sum2=sum([prefs[p2][it]foritinsi])皮爾遜相關度使用如下函數(shù)計算皮爾遜相關度,該函數(shù)返回一個-134皮爾遜相關度#計算平方和sum1Sq=sum([pow(prefs[p1][it],2)foritinsi])sum2Sq=sum([pow(prefs[p2][it],2)foritinsi])#計算對應項的乘積和pSum=sum([prefs[p1][it]*prefs[p2][it]foritinsi])#計算皮爾遜相關度num=pSum-(sum1*sum2/n)den=sqrt((sum1Sq-pow(sum1,2)/n)*(sum2Sq-pow(sum2,2)/n))ifden==0:return0r=num/denreturnr皮爾遜相關度#計算平方和35皮爾遜相關度在交互式控制臺中使用上述兩種計算方法:>>>reload(recommendations)>>>recommendations.sim_distance(recommendations.critics,...'LisaRose','GeneSeymour')0.148148148148>>>recommendations.sim_pearson(recommendations.critics,...'LisaRose','GeneSeymour')0.396059017191皮爾遜相關度在交互式控制臺中使用上述兩種計算方法:36給評論者打分有了對兩個人進行比較的函數(shù),下面就可以找出與某人品味最接近的人了,進而,可以根據這些人的喜好來推薦電影。deftopMatches(prefs,person,n=5,similarity=sim_pearson): scores=[(similarity(prefs,person,other),other) forotherinprefsifother!=person] #對list排序,相似度最高的人排在最前 scores.sort() scores.reverse() returnscores[0:n]在交互控制臺中使用該函數(shù):>>recommendations.topMatches(recommendations.critics,'Toby',n=3)[(0.99124070716192991,'LisaRose'),(0.92447345164190486,'MickLaSalle'),(0.89340514744156474,'ClaudiaPuig')]給評論者打分有了對兩個人進行比較的函數(shù),下面就可以找出與某人37推薦電影我們固然可以選擇只看那些和我們品味相近的人推薦的電影,但這樣做太武斷,也許某部電影大家普遍都覺得不錯,而恰好與我們最相近的那個人沒有看過。所以,我們需要一種對推薦人進行加權的推薦,如下表:給Toby的電影推薦表推薦電影我們固然可以選擇只看那些和我們品味相近的人推薦的電影38推薦電影S.X打頭的列是經過加權的電影評分。下面的代碼給出了上述過程的具體實現(xiàn):defgetRecommendations(prefs,person,similarity=sim_pearson): totals={} simSums={} forotherinprefs: #不和自己比 ifother==person:continue sim=similarity(prefs,person,other) #忽略小于等于0的評分 ifsim<=0:continue foriteminprefs[other]:推薦電影S.X打頭的列是經過加權的電影評分。39推薦電影 #只計算我沒看過的電影 ifitemnotinprefs[person]orprefs[person][item]==0: #相似度乘以得分 totals.setdefault(item,0) totals[item]+=prefs[other][item]*sim #相似度求和 simSums.setdefault(item,0) simSums[item]+=sim #對結果進行歸一化 rankings=[(total/simSums[item],item)foritem,totalintotals.items()] #排序并返回結果 rankings.sort() rankings.reverse() returnrankings推薦電影 #只計算我沒看過的電影40推薦電影然后就可以看結果了:>>>reload(recommendations)>>>recommendations.getRecommendations(recommendations.critics,'Toby')[(3.3477895267131013,'TheNightListener'),(2.8325499182641614,'LadyintheWater'),(2.5309807037655645,'JustMyLuck')]>>>recommendations.getRecommendations(recommendations.critics,'Toby',...similarity=recommendations.sim_distance)[(3.5002478401415877,'TheNightListener'),(2.7561242939959363,'LadyintheWater'),(2.4619884860743739,'JustMyLuck')]結果顯示,人們?yōu)門oby推薦了三部電影,而且用兩種相似度地算方法得到的列表是一樣的。推薦電影然后就可以看結果了:41總結到此為止,我們建立了一個完整的推薦系統(tǒng),它適用于任何的商品推薦以及基于相似度的數(shù)據關系挖掘。。而這一切在Python中,僅僅是建立一個涉及人、商品以及評價值的字典,然后根據某些相似度算法得出的人與人的相似度,就可以進行推薦了??偨Y到此為止,我們建立了一個完整的推薦系統(tǒng),它適用于任何的42家族旅行問題的最優(yōu)化算法問題描述: Glass一家住在美國不同的地方。他們希望在紐約相聚,在同一天從各地坐飛機到紐約,幾天后再一起離開。每天有許多往返的航班,起飛時間、價格以及飛行時間都不相同。
現(xiàn)在需要找到一種好的日程安排,使得大家的旅行花費盡可能少、等待親友的時間盡可能短、乘坐飛機的時間盡可能短。建立文件optimization.py,加入如下代碼:people=[('Seymour','BOS'),('Franny','DAL'),('Zooey','CAK'),('Walt','MIA'),…('Buddy','ORD'),('Les','OMA')]#目的地:紐約LaGuardia機場destination='LGA'家族旅行問題的最優(yōu)化算法問題描述:43問題分析首先要找到一種通用的表示日程安排方案的方法。然后,為了描述某種方案的好壞,需要定義某種函數(shù)。在優(yōu)化問題中,這個函數(shù)叫做代價函數(shù)(costfunciton)。一個方案越好,它的代價函數(shù)值越小。這樣找最優(yōu)方案的問題轉化為找代價函數(shù)值最小的方案的問題。最后設法找出具有最小代價函數(shù)值的方案,完成優(yōu)化過程。問題分析首先要找到一種通用的表示日程安排方案的方法。44導入數(shù)據從網址/optimize/schedule.txt可以下載到航班數(shù)據,格式如下:LGA,MIA,20:27,23:42,169MIA,LGA,19:53,22:21,173LGA,BOS,6:39,8:09,86分別是起點、終點、起飛時間、到達時間和機票價格。將數(shù)據載入到以起止點為鍵、以航班詳情為值的字典中:flights={}forlineinfile('schedule.txt'): origin,dest,depart,arrive,price=line.strip().split(',') flights.setdefault((origin,dest),[]) #將航班詳情加入到航班字典的值中 flights[(origin,dest)].append((depart,arrive,int(price)))導入數(shù)據從網址/op45描述方案如何描述各種方案呢?一個通用的方法是使用數(shù)字列表,它使得之后描述的優(yōu)化算法并不依賴于具體的問題。本例中,用數(shù)字表示某人乘坐當天的第幾趟航班,0代表第一趟,1代表第二趟,以此類推。由于每個人都要選擇往和返兩趟班機,所以列表的總長是人數(shù)的兩倍。例如:[1,4,3,2,7,3,6,3,2,4,5,3]該方案表示Seymour坐第2趟航班去紐約,坐第5趟航班回波士頓Franny坐第4趟航班去紐約,坐第3趟回達拉斯。描述方案如何描述各種方案呢?一個通用的方法是使用數(shù)字列表,46代價函數(shù)代價函數(shù)的選取是優(yōu)化算法的重要環(huán)節(jié)。本例中,可以綜合考慮如下因素來構造代價函數(shù):價格:所有航班的總票價旅行時間:所有人在飛機上度過的總時間等待時間:在機場等待其他成員到達的總時間出發(fā)時間:早晨太早起飛的航班有額外的代價,因為旅行者睡眠不足汽車租用時間:如果集體租車,那么他們最好在某個時間前將車歸還,否則會多付租金。代價函數(shù)代價函數(shù)的選取是優(yōu)化算法的重要環(huán)節(jié)。47代價函數(shù)限于篇幅,就不給出代價函數(shù)的全部代碼了,使用方法如下:>>>reload(optimization)>>>optimization.schedulecost(s)5285有了代價函數(shù),下面就是找到具有最小函數(shù)值的方案了。在這個例子中有16個航班、每個航班都有9種可能,所有的可能數(shù)為916,約3000億,所以窮舉是不現(xiàn)實的。下面使用兩種方法實現(xiàn)優(yōu)化:
隨機優(yōu)化
爬山法代價函數(shù)限于篇幅,就不給出代價函數(shù)的全部代碼了,使用方法如下48隨機優(yōu)化隨機生成一些方案,找出其中最好的方案。defrandomoptimize(domain,costf): best=999999999 bestr=None foriinrange(1000): #隨機生成一個方案 r=[random.randint(domain[i][0],domain[i][1]) foriinrange(len(domain))] #計算代價 cost=costf(r) #與當前最優(yōu)方案的代價比較 ifcost<best: best=cost bestr=r returnr隨機優(yōu)化隨機生成一些方案,找出其中最好的方案。49爬山法隨機優(yōu)化的不足在于,沒有充分利用已有的優(yōu)解。爬山法則以一個隨機解開始,然后在鄰近的解集中尋找更好的解,這類似于從斜坡上往下走,如圖。下面的代碼片段描述了如何獲取已有解的鄰近解:neighbors=[]forjinrange(len(domain)): #兩個方向 ifsol[j]>domain[j][0]: neighbors.append(sol[0:j]+[sol[j]+1]+sol[j+1:]) ifsol[j]<domain[j][1]: neighbors.append(sol[0:j]+[sol[j]-1]+sol[j+1:])爬山法隨機優(yōu)化的不足在于,沒有充分利用已有的優(yōu)解。50爬山法爬山法雖然利用了已經找到的優(yōu)解,但它很容易陷入所謂的局部最優(yōu)解,而找不到全局最優(yōu)解。一種改進是隨機重復爬山法,即從多個隨機點開始運行爬山法若干次,以此希望有一個解能逼近全局最小。此外,模擬退火算法和遺傳算法也能避免陷入局部最小值。爬山法爬山法雖然利用了已經找到的51查看結果在交互控制臺中輸入如下代碼,查看優(yōu)化結果:>>>reload(optimization)>>>domain=[(0,8)]*(len(optimization.people)*2)>>>s=optimization.randomoptimize(domain,optimization.schedulecost)>>>optimization.schedulecost(s)3328>>>optimization.printschedule(s)SeymourBoston12:34-15:02$10912:08-14:05$142FrannyDallas12:19-15:25$3429:49-13:51$229ZooeyAkron9:15-12:14$24715:50-18:45$243WaltMiami15:34-18:11$32614:08-16:09$232BuddyChicago14:22-16:32$12615:04-17:23$189LesOmaha15:03-16:42$1356:19-8:13$239查看結果在交互控制臺中輸入如下代碼,查看優(yōu)化結果:52查看結果>>>s=optimization.hillclimb(domain,optimization.schedulecost)>>>optimization.schedulecost(s)3063>>>optimization.printschedule(s)SeymourBOS12:34-15:02$10910:33-12:03$74FrannyDAL10:30-14:57$29010:51-14:16$256ZooeyCAK10:53-13:36$18910:32-13:16$139WaltMIA11:28-14:40$24812:37-15:05$170BuddyORD12:44-14:17$13410:33-13:11$132LesOMA11:08-13:07$17518:25-20:34$205查看結果>>>s=optimization.hillcli53總結
在本例中,首先使用Python的列表對不同的方案進行了數(shù)學建模,然后根據一些指標建立了代價函數(shù),最后使用兩種方法實現(xiàn)了優(yōu)化過程。在整個過程中,Python的簡單易用讓我們能夠集中精力解決實際的問題。而無需過多關注編程本身。此外,Python的交互控制臺使得編程與調試過程變得自然順暢??偨Y 在本例中,首先使用Python的列表對不同的方案進行了54硬幣的另一面限制Python發(fā)展的因素
缺乏預包裝的解決方案
數(shù)據庫訪問層的局限性
文檔差距
缺乏GUI和團隊協(xié)作工具硬幣的另一面限制Python發(fā)展的因素55限制Python發(fā)展的因素缺乏預包裝的解決方案
PHP在企業(yè)軟件領域贏得了輝煌的成功,主要原因就在于其廣泛實用的產品門類,比如討論板、聊天服務器和分組日歷以及即時消息系統(tǒng)等。相比之下,Python提供的解決方案就少多了。Python語言的分發(fā)版中確實包含了一些擴展的類庫,越來越多的程序員也在致力于開發(fā)等價PHP的Python工具,但是考慮到市場的時間緊迫性,而且你所面臨的問題已經有現(xiàn)成的PHP解決方案可以對付,那么PHP自然會成為你的首選。限制Python發(fā)展的因素缺乏預包裝的解決方案
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年云南貨運從業(yè)資格證考試模擬題庫答案大全
- 當代中國詩歌現(xiàn)狀及其發(fā)展趨勢
- 單元工程驗收
- 寶來1.2t的優(yōu)缺點
- 客戶訪談技巧簡單講
- 腸道健康與慢病管理
- 平陽縣2025屆五年級數(shù)學第二學期期末達標檢測模擬試題含答案
- 江蘇省揚州市江都區(qū)大橋片2025屆五年級數(shù)學第二學期期末達標測試試題含答案
- 管理學激勵的理論教學
- 2024-2025學年遼寧省丹東市第七中學高三下第一次月考英語試題含解析
- 2023年中國工商銀行天津分行校園招聘考試錄用公告
- 班組工程量結算書
- 生產件批準申請書
- 環(huán)境監(jiān)測考試知識點總結
- 爵士音樂 完整版課件
- 嘉興華雯化工 - 201604
- 冀教版七年級下冊數(shù)學課件 第8章 8.2.1 冪的乘方
- XX公司“十四五”戰(zhàn)略發(fā)展規(guī)劃及年度評價報告(模板)
- 計算機輔助設計(Protel平臺)繪圖員級試卷1
- 除法口訣表(完整高清打印版)
- 河北省城市建設用地性質和容積率調整管理規(guī)定---精品資料
評論
0/150
提交評論