這本書還可以的。
def MergeSort(lists):
if len(lists) <= 1:
return lists
num = int( len(lists)/2 )
left = MergeSort(lists[:num])
right = MergeSort(lists[num:])
return Merge(left, right)
def Merge(left,right):
r, l=0, 0
result=[]
while l<len(left) and r<len(right):
if left[l] < right[r]:
result.append(left[l])
l += 1
else:
result.append(right[r])
r += 1
result += right[r:]
result+= left[l:]
return result
print MergeSort([1, 2, 3, 4, 5, 6, 7, 90, 21, 23, 45])
Ⅱ Python 網路編程需要學習哪些網路相關的知識
基本的比如網路層次結構,每一層的工作原理,數據傳輸方式,網路協議,要有個基本了解。其次,TCP/IP這個很重要。推薦先看看謝希仁的《計算機網路》
Ⅲ Python網路編程
在當今Python伺服器框架 (framework, 比如Django, Twisted, web.py等等) 橫行的時代,從底層的socket開始寫伺服器似乎是一個出力不討好的笨方法。框架的意義在於掩蓋底層的細節,提供一套對於開發人員更加友好的API,並處理諸如MVC的布局問題。框架允許我們快速的構建一個成型而且成熟的Python伺服器。然而,框架本身也是依賴於底層(比如socket)。對於底層socket的了解,不僅可以幫助我們更好的使用框架,更可以讓我們明白框架是如何設計的。更進一步,如果擁有良好的底層socket編程知識和其他系統編程知識,你完全可以設計並開發一款自己的框架。如果你可以從底層socket開始,實現一個完整的Python伺服器,支持用戶層的協議,並處理好諸如MVC(Model-View-Control)、多線程(threading)等問題,並整理出一套清晰的函數或者類,作為介面(API)呈現給用戶,你就相當於設計了一個框架。socket介面是實際上是操作系統提供的系統調用。socket的使用並不局限於Python語言,你可以用C或者JAVA來寫出同樣的socket伺服器,而所有語言使用socket的方式都類似(Apache就是使用C實現的伺服器)。而你不能跨語言的使用框架。框架的好處在於幫你處理了一些細節,從而實現快速開發,但同時受到Python本身性能的限制。我們已經看到,許多成功的網站都是利用動態語言(比如Python, Ruby或者PHP,比如twitter和facebook)快速開發,在網站成功之後,將代碼轉換成諸如C和JAVA這樣一些效率比較高的語言,從而讓伺服器能更有效率的面對每天億萬次的請求。在這樣一些時間,底層的重要性,就遠遠超過了框架。
Ⅳ python網路編程
那個,conn.recv返回的是接收到的數據,不是數據長度!
file_size = str(conn.recv(1024))這句完全沒有意義
data = conn.recv(1024))
file_size = len(data)
這樣才是獲取數據長度,不過你的邏輯還是有問題,你第一次接收的數據給扔了。。。
Ⅳ python網路編程報錯,求解!
python版本太低了吧……而且怎是個64位的?而且在linux上?
裝一個新的發行版,比如ubuntu11.10之類的,最新的python就好了吧,試試看
Ⅵ python網路編程可以用來做什麼
1. Web開發
最火的Python web框架Django,支持非同步高並發的Tornado框架,短小精悍的flask,bottle,Django官方的標語把Django定義為the framework for perfectionist with deadlines(大意是一個為完全主義者開發的高效率web框架)
2. 網路編程
支持高並發的Twisted網路框架,py3引入的asyncio使非同步編程變的非常簡單
3. 爬蟲開發
爬蟲領域,Python幾乎是霸主地位,Scrapy/Request/BeautifuSoap/urllib等,想爬啥就爬啥
4. 雲計算開發
目前最火最知名的雲計算框架就是OpenStack,Python現在的火,很大一部分就是因為雲計算市場近幾年的爆發
5. 人工智慧
MASA和Google早期大量使用Python,為什麼Python積累了豐富的科學運算庫,當AI時代來臨後,Python從眾多編程語言中脫穎而出,各種人工智慧演算法都基於Python編寫,由其PyTorch之後,Python作為AI時代頭牌語言的位置基本確立!
6. 自動化運維
問問中國的每個運維人員,運維人員必須會的語言是什麼?10個人詳細會給你一個相同的答案,它的名字叫Python
7. 金融分析
金融公司使用的很多分析程序、高頻交易軟體就是用的Python,目前,Python是金融分析、量化交易領域里用的最多的語言
8. 科學運算
97年開始,NASA就在大量使用Python在進行各種復雜的科學運算,隨著NumPy,SciPy,Matplotlib,Enthought librarys等眾多程序庫的開發,使得Python越來越適合做科學計算、繪制高質量的2D和3D圖像。和科學計算領域最流行的商業軟體Matlab相比,Python是一門通用的程序設計語言,比Matlab所採用的腳本語言的應用范圍更廣泛
9. 游戲開發
在網路游戲開發中Python也有很多應用。相比Lua or C++,Python比Lua有更高階的抽象能力,可以用更少的代碼描述游戲業務邏輯,與Lua相比,Python更適合作為一種Host語言,即程序的入口點是在Python那一端會比較好,然後用C/C++在非常必要的時候寫一些擴展。Python非常適合編寫1萬行以上的項目,而且能夠很好的把網游項目的規模控制在10萬行代碼以內。
10. 桌面軟體
雖然大家很少使用桌面軟體了,但是Python在圖形界面開發上也很強大,你可以用tkinter/PyQT框架開發各種桌面軟體!
Ⅶ Python網路編程基礎的介紹
《Python網路編程基礎》是電子工業出版社2007年出版的圖書,由高森編著。本書全面介紹了使用Python語言進行網路編程的基礎知識,主要內容包括網路基礎知識、高級網路操作、Web Services、解析HTML和XHTML、XML、E-mail服務、FTP、使用Python操作資料庫、SSL、幾種伺服器端框架(包括Socket伺服器、SimpleXMLRPCServer、CGI和mod_python),以及多任務處理(包括Forking、線程和非同步通信)等。
Ⅷ python做網路編程,能說說有什麼嗎
就目前來說python畢竟是一門腳本語言,很多企業不會直接招會Python的人。最多會說,招C++或者C#或者然後最後補上一句,熟悉python為佳!
Ⅸ Python 網路編程
你用到了recv(buffer_size),那麼你用的是TCP協議;tcp協議不同與udp,udp是一次發送,接收到就收到,沒收到就會丟棄,也就是掉包.tcp是分段發送的,沒記錯的話size是在16-4380之間,超過部分會再發,直到服務端收完,如果服務端只手一次的話,也就是說沒循環來接收,客戶端就會在下一次send前刪掉緩存區的數據.
看下下面的代碼,改成你的環境下看看列印出來的東西就知道了:
whileTrue:
print"waitingoftheclienttoconnect"
clt_conn_sock,addr=sock_svr.accept()
print'Connectedby',addr
comp_data=''#完整數據
whileTrue:
data=clt_conn_sock.recv(SIZE)
printdata#這里第一次列印時就是只接收一次的情況
ifnotdata:
break
comp_data+=data
clt_conn_sock.close()
ifnotcomp_data:
continue
printcomp_data