選擇了腳本語言就要忍受其速度,這句話在某種程度上說明了python作為腳本的一個(gè)不足之處,那就是執(zhí)行效率和性能不夠理想,特別是在performance較差的機(jī)器上,因此有必要進(jìn)行一定的代碼優(yōu)化來提高程序的執(zhí)行效率。如何進(jìn)行Python性能優(yōu)化,是本文探討的主要問題。本文會(huì)涉及常見的代碼優(yōu)化方法,性能優(yōu)化工具的使用以及如何診斷代碼的性能瓶頸等內(nèi)容,希望可以給Python開發(fā)人員一定的參考。代碼優(yōu)化能夠讓程序運(yùn)行更快,它是在不改變程序運(yùn)行結(jié)果的情況下使得程序的
系統(tǒng) 2019-09-27 17:38:10 1612
列表有自己的sort方法,其對(duì)列表進(jìn)行原址排序,既然是原址排序,那顯然元組不可能擁有這種方法,因?yàn)樵M是不可修改的。排序,數(shù)字、字符串按照ASCII,中文按照unicode從小到大排序x=[4,6,2,1,7,9]x.sort()print(x)#[1,2,4,6,7,9]如果需要一個(gè)排序好的副本,同時(shí)保持原有列表不變,怎么實(shí)現(xiàn)呢?x=[4,6,2,1,7,9]y=x[:]y.sort()print(y)#[1,2,4,6,7,9]print(x)#[4,
系統(tǒng) 2019-09-27 17:38:09 1612
今天一個(gè)朋友給個(gè)需求:來來{'isOK':1,'isRunning':None,'isError':None}怎么轉(zhuǎn)換成字典好,一看就是json轉(zhuǎn)化很簡(jiǎn)單,開始:importjsona="{'isOK':1,'isRunning':None,'isError':None}"printjson.loads(a)死活出不來結(jié)果,還報(bào)錯(cuò),查了兩個(gè)小時(shí)的百度,沒搞明白。最后,直接復(fù)制網(wǎng)上的代碼,OK,運(yùn)行成功,可是把我的a變量填進(jìn)去,不行,報(bào)錯(cuò);開始對(duì)比兩個(gè)變量有
系統(tǒng) 2019-09-27 17:38:00 1612
示例一#coding=UTF-8importsysimportMySQLdbimporttimereload(sys)sys.setdefaultencoding('utf-8')defconnectDemo():returnMySQLdb.Connection("127.0.0.1","root","root","demo",3306,charset="utf8")if__name__=='__main__':begin=time.time()conn=
系統(tǒng) 2019-09-27 17:37:59 1612
一、定制Python的交互提示符Python的默認(rèn)交互提示符為“>>>”,但它是可以定制的。Python啟動(dòng)后,先尋找PYTHONSTARTUP環(huán)境變量,然后執(zhí)行此文件中變量指定的執(zhí)行代碼。一些Linux發(fā)布包提供了缺省的啟動(dòng)腳本,一般存放在其home目錄,名為.pythonstartup。“Tab完成”和“命令歷史”這兩個(gè)功能增強(qiáng)了提示符應(yīng)用,兩者都基于readline模塊。如果沒有.pythonstartup文件,可以自己創(chuàng)建一個(gè)。簡(jiǎn)單例子:復(fù)制代碼代
系統(tǒng) 2019-09-27 17:37:55 1612
第一步:升級(jí)pythonCentOs6.x的系統(tǒng)默認(rèn)安裝的Python版本是2.6.x,想升級(jí)到Python2.7.x,從官方下載源文件,然后解壓、編譯wgethttp://www.python.org/ftp/python/2.7.10/Python-2.7.10.tar.xzunxzPython-2.7.10.tar.xztar-vxfPython-2.7.10.tar執(zhí)行完以上命令會(huì)解壓得到Python-2.7.10這個(gè)文件夾,進(jìn)入該目錄并執(zhí)行以下命
系統(tǒng) 2019-09-27 17:37:55 1612
單繼承時(shí)super()和__init__()實(shí)現(xiàn)的功能是類似的classBase(object):def__init__(self):print'Basecreate'classchildA(Base):def__init__(self):print'creatA',Base.__init__(self)classchildB(Base):def__init__(self):print'creatB',super(childB,self).__init__
系統(tǒng) 2019-09-27 17:37:52 1612
1.算法:(設(shè)查找的數(shù)組期間為array[low,high])(1)確定該期間的中間位置K(2)將查找的值T與array[k]比較。若相等,查找成功返回此位置;否則確定新的查找區(qū)域,繼續(xù)二分查找。區(qū)域確定如下:a.array[k]>T由數(shù)組的有序性可知array[k,k+1,……,high]>T;故新的區(qū)間為array[low,……,K-1]b.array[k]復(fù)制代碼代碼如下:#!/usr/bin/python#-*-coding:utf-8-*-def
系統(tǒng) 2019-09-27 17:37:51 1612
Python生成指定數(shù)量的優(yōu)惠碼打開Python開發(fā)工具IDLE,新建‘codeGen.py'文件,并保存導(dǎo)入需要的包,這里需要random和string,代碼如下:importstringimportrandom假設(shè)需要生成200個(gè),長(zhǎng)度為10的優(yōu)惠碼,實(shí)際應(yīng)用這個(gè)可以作為參數(shù)進(jìn)來CODE_COUNT=200CODE_LEN=10設(shè)計(jì)的優(yōu)惠碼由字母和數(shù)字組成,通過下面函數(shù)獲取所有字母和數(shù)字,字母區(qū)分大小寫defstrall():return(string
系統(tǒng) 2019-09-27 17:37:48 1612
先使用一些關(guān)鍵參數(shù)創(chuàng)建對(duì)象實(shí)例,如下:>>>p=Publisher(name='Apress',...address='2855TelegraphAve.',...city='Berkeley',...state_province='CA',...country='U.S.A.',...website='http://www.apress.com/')這個(gè)對(duì)象實(shí)例并沒有對(duì)數(shù)據(jù)庫做修改。在調(diào)用``save()``方法之前,記錄并沒有保存至數(shù)據(jù)庫,像這樣:>>
系統(tǒng) 2019-09-27 17:37:48 1612