#堆排序defheap_sort(arr):root=len(arr)//2-1while(root>=0):heap_adjust(arr,root,len(arr)-1)root=root-1#此時生成的大頂堆,滿足每個根節(jié)點為子樹中最大,因此,之后只需要對最頂?shù)淖訕溥M行調(diào)整i=len(arr)-1whilei>=0:arr[0],arr[i]=arr[i],arr[0]heap_adjust(arr,0,i-1)i=i-1defheap_adjust
系統(tǒng) 2019-09-27 17:45:50 1723
不論什么語言,我們都需要注意性能優(yōu)化問題,提高執(zhí)行效率。選擇了腳本語言就要忍受其速度,這句話在某種程度上說明了Python作為腳本語言的不足之處,那就是執(zhí)行效率和性能不夠亮。盡管Python從未如C和Java一般快速,但是不少Python項目都處于開發(fā)語言領(lǐng)先位置。Python很簡單易用,但大多數(shù)人使用Python都知道在處理密集型cpu工作時,它的數(shù)量級依然低于C、Java和JavaScript。但不少第三方不愿贅述Python的優(yōu)點,而是決定自內(nèi)而外提
系統(tǒng) 2019-09-27 17:45:40 1723
Python2中編碼相關(guān)的問題很是讓人蛋疼,特別是中文字符。比如本文所述的中文網(wǎng)頁GBK編碼的詭異問題。現(xiàn)象例如:盲錄?氓??,其實網(wǎng)頁里面正常的應該是會員分析接著上面的例子,會員這部分亂碼通過repr()函數(shù)求值得到如下結(jié)果\xc3\xa4\xc2\xbc\xc2\x9a\xc3\xa5\xc2\x91\xc2\x98使用type()函數(shù)求值得到的結(jié)果為unicodeeval(repr())出來值為盲錄?氓??通過查表上述6個漢字對應c3a4c2bcc2
系統(tǒng) 2019-09-27 17:45:40 1723
一.語法列表解析式是將一個列表(實際上適用于任何可迭代對象(iterable))轉(zhuǎn)換成另一個列表的工具。在轉(zhuǎn)換過程中,可以指定元素必須符合一定的條件,才能添加至新的列表中,這樣每個元素都可以按需要進行轉(zhuǎn)換。好處:1.簡潔2.高效其實列表解析式并不是必須的,因為它能完成的工作都能夠通過for循環(huán)完成,但是列表解析式比手動的for循環(huán)語句運行得更快(往往速度快一倍),因為它們的迭代在解釋器內(nèi)部是以C語言的速度執(zhí)行的,而不是以手動的Python代碼執(zhí)行的,特別是
系統(tǒng) 2019-09-27 17:45:29 1723
保證只能運行一個腳本實例,方法是程序運行時監(jiān)聽一個特定端口,如果失敗則說明已經(jīng)有實例在跑。使用裝飾器實現(xiàn),便于重用復制代碼代碼如下:importfunctoolsdefjust_one_instance(func):'''裝飾器如果已經(jīng)有實例在跑則退出復制代碼代碼如下::return:'''@functools.wraps(func)deff(*args,**kwargs):importsockettry:#全局屬性,否則變量會在方法退出后被銷毀globa
系統(tǒng) 2019-09-27 17:45:27 1723
前言因為有一些網(wǎng)站需要每日檢查是否有問題,所以需要一個報警監(jiān)控的機制,這個需要你指定你發(fā)送的郵箱和你接收的郵箱,就可以做到對網(wǎng)站自動監(jiān)控了。這里用的是python3.5需要安裝的插件:1、smtplib:發(fā)郵件需要用到2、pycurl:訪問網(wǎng)站時會需要用到3、linecache:在讀取txt網(wǎng)站清單時需要用到具體思路:python程序從txt里面批量讀取到網(wǎng)站的信息,通過Curl.py模擬瀏覽器去訪問網(wǎng)站,并且把訪問的結(jié)果寫入到以自己的網(wǎng)站名稱-日期.tx
系統(tǒng) 2019-09-27 17:38:41 1723
一般來說在Python中,為了解決內(nèi)存泄漏問題,采用了對象引用計數(shù),并基于引用計數(shù)實現(xiàn)自動垃圾回收。由于Python有了自動垃圾回收功能,就造成了不少初學者誤認為自己從此過上了好日子,不必再受內(nèi)存泄漏的騷擾了。但如果仔細查看一下Python文檔對__del__()函數(shù)的描述,就知道這種好日子里也是有陰云的。下面摘抄一點文檔內(nèi)容如下:Somecommonsituationsthatmaypreventthereferencecountofanobjectfr
系統(tǒng) 2019-09-27 17:38:39 1723
實例如下:#環(huán)境:python3.xdefgetExportDbSql(db,index):#獲取導出一個數(shù)據(jù)庫實例的sql語句sql='mysqldump-u%s-p%s-h%s-P%d--default-character-set=utf8--databasesmu_ins_s%s>%s.s%d.mu_ins_%d.sql'%(db['user'],db['pwd'],db['host'],db['port'],index,db['server'],i
系統(tǒng) 2019-09-27 17:38:36 1723
1.能調(diào)用方法的一定是對象,比如數(shù)值、字符串、列表、元組、字典,甚至文件也是對象,Python中一切皆為對象。str1='hello'str2='world'str3=''.join([str1,str2])print(str3)2.三種基本的文件操作模式:r(only-read)、w(only-write)、a(append)對文件進行操作的流程:第一,建立文件對象。第二,調(diào)用文件方法進行操作。第三,不要忘了關(guān)閉文件。(文件不關(guān)閉的情況下,內(nèi)容會放在緩存
系統(tǒng) 2019-09-27 17:38:34 1723
1、安裝virtulenv、virtulenvwrapper包pipinstallvirtualenvvirtualenvwrapper2、virtualenvwrapper是virtualenv的擴展工具,可以方便的創(chuàng)建、刪除、復制、切換不同的虛擬環(huán)境。3、設(shè)置環(huán)境變量,把下面兩行添加到~/.bash_profile里exportWORKON_HOME=/software/venvsource/usr/local/bin/virtualenvwrappe
系統(tǒng) 2019-09-27 17:38:34 1723