Python学习笔记Python学习笔记一(数据类型)1.数字可以使用+-*/进行运算,支持浮点数运算,参与运算的数中有浮点数,则结果即为浮点数。可以使用float(),int(),long()来强制转换。range(i[,j[,k]]),返回值为0-i(或i到j-1,间隔为k)的整数序列。其他数字常用函数:abs(x):返回x的绝对值divmod(a,b):返回a除以b的商和余数hex(x):返回x的16进制值字符串int(x[,radix]):转化int值,若指定radix进制值,转为该进制的整数max(s[,..]):返回一组中的最大值min(s[,..]):返回一组中的最小值oct(x):返回x的8进制ord(c):返回字符c的ASCII码round(x[,n]):将x四舍五入到小数点后n位2.字符串字符串可以使用单引号或双引号标示。使用反斜杠加单引号或双引号在字符串中进行转意(\'\)。两个反斜杠可以转意为反斜杠。字符串可以使用结尾加反斜杠来换行续写。使用反斜杠加n(\n)表示换行。如果在字符串常量前加r,则不转意,表示是一行数据,如:a=rhello\nworld!。字符串还可以用三重引号标示,其中允许包含换行。字符串可以用+号连接(字符串值甚至可以直接连接,如a=hello'world'),还可以用*号重复,如a=hi*5。字符串可以使用下标索引,如a=hello,则a[0]=h,a[1:4]=ell。按字符串索引的结果是常量,是不能赋值的。索引为负数,表示从后往前数。len(s)返回字符串s的长度。os.urandom(n):可以返回长度为n的随机字符串。字符串操作函数:lower():转为小写;upper():转为大写;strip()/lstrip()/rstrip():截断;replace(old,new,[max]):替换,最多max次,默认替换全部;split([expr,[max]]):用expr分隔,返回列表;join(L):连接列表L的内容;ljust/rjust(width[,fillchar]):左/右填充字符chr(i):将ASCII码转为一个字符ord(ch):将字符转为ASCII码使用正则表达式:importret1='Thisisadog!'rstr='dog'#正则t2=re.sub(rstr,'cat',t1)URL地址字符串操作:importurlliburllib.quote(s[,sf])#把s转成URL地址,sf指定的内容不转换urllib.unquote(url)#把url转回普通地址转义字符串:x='thisis%s,sizeis%d'%(name,size)3.Unicode字符串定义unicode字符串,只要在普通字符串前加u定义即可。可以使用反斜杠加u来转意字符,如\u0020就表示空格字符。4.链表链表(Lists)的元素可以是不同的类型,如a=['a','b',1,2],甚至某个元素就是一个Lists。可以对切片进行赋值,以实现添加如a[2:2]=[6],修改a[2:3]=7,删除a[2:3]=[]。链表的方法:append(x):添加一个元素到链表最后;extend(L):添加一个链表的所有元素到链表最后;insert(i,x):插入一个元素到元素i之前;remove(x):删除第一个值为x的元素;pop([i]):返回元素i,并在列表中将其删除,若未指定i,返回最后一个元素,并在列表中将其删除;index(x):返回值为x的元素索引;count(x):返回值为x的元素的个数;sort():链表排序;reverse():链表排序(倒序);链表的相关函数:filter(f,L):把L中的所有元素,放入f函数运行,返回执行结果为非0的所有元素;map(f,L):把L中的所有元素,放入f函数运行,返回执行结果组成的链表;reduce(f,L,[x]):把L中的元素依次作为f函数的参数运行,执行结果也作为f函数参数,返回最终的执行结果,x可以作为初始参数,若无则使用第一个元素;若L只有一个元素,返回该元素;del(L[i:e]):把L中的i:e的元素删除,如del(a[2])、del(a[1:3]);5.元组元组(Tuples):元组生成后,不可对其元素赋值,但是若元素是可变元素,则可以修改此元素的内容,如a=(1,[2,3]),执行a[1][1]=4,则a=(1,[2,4]);定义空元组:a=()定义单元素元组:a=(1,)或a=1,定义元组:a=(1,2,3)或a=1,2,3元组拆封:如x,y,z=a,则x=1,y=2,z=3,拆封可适用用任何序列;6.字典字典(Dictionaries):可以看作是无序的(关键字:值)对,序列以数字为索引,字典以关键字为索引,关键字可以是任何不可变类型,通常上字符串和数值。构造字典:dict([('x',1),('y',3)])字典的方法:D.clear():清空D的内容;D.get(k[,d]):获取D中关键字为k的值,若没有,返回d(默认为None);D.has_key(k):D中是否有关键字k;D.items():将D中的值对转为列表;D.keys():返回D中的key列表;D.pop(k[,d]):弹出D中关键字为k的值,若没有,返回d(默认为None);D.setdefault(k[,d]):获取D中k的值,若没有,返回d,并添加k:d对;D.update(E[,**F]):将E和F中的值更新到D中;D.values():返回D中值列表;7.全局变量全局变量关键字global声明的变量,只在声明单元内有效。要使用一个各单元能共享访问的全局变量,可以将变量声明在其中一个单元中,然后其他单元import该单元(注意:不是formXXXimport*,也不要global声明变量),读写该变量时,使用'单元名.变量',这样就可以实现在多单元间共享一个变量。8.日期、时间的操作操作日期、时间,需要importtimetime.localtime(),返回当前时间序列。9.import语句说明import语句可以出现在开头,或代码中间。import语句出现时,即去导入并执行指定的文件,该文件执行时的__name__为其模块名。import语句如同一般的语句一样,顺序执行。执行时,若发现导入的模块已经被导入,则会跳过。import语句甚至可以导入其本身的模块。Python学习笔记二(使用入门)一、动态调用方法#方法的名称为mnameifhasattr(self,mname):#查询类中是否有该方法method=getattr(self,mname)#若有,获取该方法method()#调用该方法二、运行外部程序1.os.startfile(filename)2.os.system(startfilename)--Windowsos.system(filename&)--Unix注:若使用system(filename)直接运行时,需求等到filename执行返回后,才能继续下面的程序,若在线程中调用,线程无法结束。三、线程数据共享的简单用法1.创建锁:tlock=threading.Lock()2.请求锁:tlock.acquire([waittime]),如果waittime未指定,则一直等待直到获得锁,如果指定waittime,则等待锁直到超时,返回为是否请求到锁。若waitime=0,则立即返回。3.释放锁:tlock.release()4.查询锁:tlock.locked(),返回该锁是否被锁定四、线程操作1.threading.activeCount()可以获取当前运行中的线程个数,包括主线程。2.threading.enumerate()可以获取当前所有的线程列表3.线程的套用,若主线程创建线程1,线程1创建线程2,若线程1设置setDaemon(True),则默认线程2也设置setDaemon(True)。主线程退出时,不管线程1或2,只要有设置setDaemon(True)的线程还在运行,主线程将继续运行。五、动态调用外部文件可以声明一个local字典变量,将参数放入该字典,然后传人文件中执行,执行结果可以由字典返回。如:dlocal={}dlocal['pin']=4execfile('new.py',{},dlocal)printstr(dlocal['pout'])六、若将模块的扩展名设置为.pyw,则模块运行时将不显示控制台窗口七、包的使用包是以目录区分的,如在当前目录下生成TestPackage目录,在目录下放置__init__.py(必需),和test.py,要引入test模块时,importTestPackage.test即可,调用时会先运行__init__.py。八、异常的使用以下是异常的几个最简单、直接的用法。try:....except:print'error'或try:....exceptException,(args,):printargs或try:...exceptException,args:printargs九、HttpRequest的使用1.socket超时importsocketsocket.setdefaulttimeout(mytimeout)2.request简单使用importurllib2request=urllib2.Request(')request.add_header('Cookie','WebClientID=32092E7D%2DF208%2D42EA%2DAF89%2D6036A131C84C;')opener=urllib2.build_opener()tfile=opener.open(request)printtfile.code#成功返回200printtfile.geturl()#返回的urlprinttfile.headers#返回的headprinttfile.read()#返回的htmlPython学习笔记三(常用模块)1.os模块os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果。os.name:返回当前操作系统名称('posix','nt','os2','mac','ce'or'riscos')os中定义了一组文件、路径在不同操作系统中的表现形式参数,如os.sep(文件夹分隔符,windows中是\)os.extsep(扩展名分隔符,windows中是.)os.pathsep(目录分隔符,windows中是;)os.linesep(换行分隔符,windows中是\r\n)os中有大量文件、路径操作的相关函数,如:listdir(path):列举目录下的所有文件makedir(path):创建文件夹,注:创建已存在的文件夹将异常makedirs(path):递归式的创建文件夹,注:创建已存在的文件夹将异常remove(filename):删除一个文件rmdir(path):删除一个文件夹,注:删除非空的文件夹将异常removedirs(path):递归的删除文件夹,直到有一级的文件夹非空,注:文件夹路径不能以'\'结束rename(src,dst):给文件或文件夹改名(可以改路径,但是不能覆盖目标文件)renames(src,dst):递归式的给文件或文件名改名walk(path):列举path下的所有文件、文件夹os中与进程相关的操作,如:execl(path):运行一个程序来替代当前进程,会阻塞式运行_exit(n):退出程序startfile(filename):用与文件关联的程序运行,关联程序打开后,立即返回system(cmd):运行一个程序或命令,会立即返回,并在cmd执行完成后,会返回cmd退出代码os.path:在不同的操作系统中调用不同的模块,是一个可import的模块,这个模块中提供很多有用的操作:abspa