Python学习笔记.doc

上传人:wj 文档编号:2131512 上传时间:2023-05-02 格式:DOC 页数:50 大小:142KB
下载 相关 举报
Python学习笔记.doc_第1页
第1页 / 共50页
Python学习笔记.doc_第2页
第2页 / 共50页
Python学习笔记.doc_第3页
第3页 / 共50页
Python学习笔记.doc_第4页
第4页 / 共50页
Python学习笔记.doc_第5页
第5页 / 共50页
Python学习笔记.doc_第6页
第6页 / 共50页
Python学习笔记.doc_第7页
第7页 / 共50页
Python学习笔记.doc_第8页
第8页 / 共50页
Python学习笔记.doc_第9页
第9页 / 共50页
Python学习笔记.doc_第10页
第10页 / 共50页
Python学习笔记.doc_第11页
第11页 / 共50页
Python学习笔记.doc_第12页
第12页 / 共50页
Python学习笔记.doc_第13页
第13页 / 共50页
Python学习笔记.doc_第14页
第14页 / 共50页
Python学习笔记.doc_第15页
第15页 / 共50页
Python学习笔记.doc_第16页
第16页 / 共50页
Python学习笔记.doc_第17页
第17页 / 共50页
Python学习笔记.doc_第18页
第18页 / 共50页
Python学习笔记.doc_第19页
第19页 / 共50页
Python学习笔记.doc_第20页
第20页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Python学习笔记.doc

《Python学习笔记.doc》由会员分享,可在线阅读,更多相关《Python学习笔记.doc(50页珍藏版)》请在冰点文库上搜索。

Python学习笔记.doc

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=r"hello\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码

   使用正则表达式:

    importre

    t1='Thisisadog!

'

    rstr='dog'#正则

     t2=re.sub(rstr,'cat',t1)

URL地址字符串操作:

   importurllib

   urllib.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.日期、时间的操作

   操作日期、时间,需要importtime

   time.localtime(),返回当前时间序列。

 

9.import语句说明

   import语句可以出现在开头,或代码中间。

import语句出现时,即去导入并执行指定的文件,该文件执行时的__name__为其模块名。

   import语句如同一般的语句一样,顺序执行。

执行时,若发现导入的模块已经被导入,则会跳过。

import语句甚至可以导入其本身的模块。

Python学习笔记二

(使用入门)

 

一、动态调用方法

  #方法的名称为mname

 ifhasattr(self,mname):

#查询类中是否有该方法

     method=getattr(self,mname)#若有,获取该方法

     method()#调用该方法

 

二、运行外部程序

1.os.startfile(filename)

2.os.system("startfilename")--Windows

 os.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']=4

   execfile('new.py',{},dlocal)

   print str(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超时

     importsocket

      socket.setdefaulttimeout(mytimeout)

   2.request简单使用

     importurllib2

     request=urllib2.Request('')

     request.add_header('Cookie','WebClientID=32092E7D%2DF208%2D42EA%2DAF89%2D6036A131C84C;')

     opener=urllib2.build_opener()

     tfile=opener.open(request)

     printtfile.code#成功返回200

     printtfile.geturl()#返回的url

     printtfile.headers #返回的head

      printtfile.read()#返回的html

Python学习笔记三

(常用模块)

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的模块,这个模块中提供很多有用的操作:

   abspath(path):

返回path的绝对路径,若path已经是绝对路径了,则保持。

   basename(path):

返回path中的文件名。

   commonprefix(list):

返回list中的统一前缀,用于获得一组字符串的左起相同的内容

   dirname(path):

返回path中的文件夹部分,结果不包含'\'

   exists(path):

文件或文件夹是否存在

   getatime(path):

文件或文件夹的最后访问时间,从新纪元到访问时的秒数

   getmtime(path):

文件或文件夹的最后修改时间

   getctime(path):

文件或文件夹的创建时间

   getsize(path):

文件或文件夹的大小,若是文件夹返回0

   isabs(path):

返回是否是绝对路径

   isfile(path):

返回是否是文件路径

   isdir(path):

返回是否是文件夹路径

   islink(path):

返回是否是快捷方式

   join(path1,path2,...):

将path进行组合,若其中有绝对路径,则之前的path将被删除

   normcase(path):

转换路径中的间隔符

   normpath(path):

转换路径为系统可识别的路径

   realpath(path):

转换路径为绝对路径

   split(path):

将路径分解为(文件夹,文件名)

   splitext(path):

将路径分解为(其余部分,.扩展名),若文件名中没有扩展名,扩展名部分为空字符串

 在操作与系统不支持的对象时,抛出OSError异常。

 

2.sys模块

 系统信息和方法模块,提供了很多实用的变量和方法:

   argv:

命令行参数List,第一个元素是程序本身路径

   builtin_module_names:

Python解释器导入的模块列表

   modules.keys():

返回所有已经导入的模块列表

   exc_info():

获取当前正在处理的异常类

   exc_type、exc_value、exc_traceback:

当前处理的异常详细信息

   executable:

Python解释程序路径

   exit(n):

退出程序,正常退出时exit(0)

   getwindowsversion():

获取Windows的版本

   hexversion:

获取Python解释程序的版本值,16进制格式如:

0x020403F0

   version:

获取Python解释程序的版本信息

   maxint:

最大的Int值

   maxunicode:

最大的Unicode值

   modules:

返回系统导入的模块字段,key是模块名,value是模块

   path:

返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

   platform:

返回操作系统平台名称

 

3.built-in内置模块

   eval_r(expr[,globals[,locals]]):

执行一段代码,并返回结果

   exec(expr[,globals[,locals]]):

执行一段代码

   execfile(file[,globals[,locals]]):

执行一个文件

   filter(func,list):

使用函数来过滤list,返回满足要求的list元素组

   getattr(obj,name[,default]):

获取对象的属性,若没有该属性,则返回默认值

   setattr(obj,name,value):

设置对象的属性,若没有该属性,则异常

   hasattr(obj,name):

返回对象是否有指定属性

   input([prompt]):

提示控制台输入,必须输入常量或变量,若想直接输入字符串,需要使用引号括起来

   raw_input([prompt]):

提示控制台输入,直接输入数字或字符串

   open(filename,mode):

打开文件,mode可以为:

w,r,a,若想同时读写,则加上+,若想以二进制读写,则加上b

   reload(module):

再次导入已导入过的模块

   type(obj):

返回一个对象的类型

   zip(seq1,...):

将若干个元组进行合并,长度以元组中的最短的为准

 

4.time模块

  这个模块定义的都是和时间、时钟、计时相关的内容:

   clock():

返回第一次调用到当前调用时的计时,是以秒为单位的浮点数

   localtime([t]):

返回时间的数组,有9个元素(年,月,日,时,分,秒,星期几,当年的第几天,是否夏令时),星期一为0

   mktime(tlist):

是localtime的反函数,将一个9元数组转成一个浮点时间值,后3个元素,系统会自己调整

   sleep(n):

挂起线程n秒

   strftime(fstring[,t]):

格式化显示时间,fstring常用关键字:

     %a,%A:

星期的缩写,全拼

     %b,%B:

月份的缩写,全屏

     %c,%x,%X:

本地默认表示法(日期时间,日期,时间)

     %Y(%y:

2位),%m,%d,%H,%M,%S:

年月日时分秒

     %w:

星期,0为星期天

   strptime(string[,format]):

将字符串解析为9元素的时间数组

   time():

返回当前时间值,浮点数

 更高级的用法可以使用datetime模块,创建其中的date,time对象,可以进行加减操作,得出timedelta对象。

 

5.re模块

限定符说明:

".":

匹配任何字符

"^":

 匹配开头 

"$":

匹配结尾

"*":

匹配0次或更多次之前的表达式。

贪婪时,匹配尽可能多次

"+":

匹配1次或更多次之前的表达式。

等价于{1,}

"?

":

匹配0次或1次之前的表达式。

等价于{0,1}

"*?

+?

?

?

":

非贪婪匹配

"{m,n}":

贪婪式匹配之前的表达式m到n次

"{m,n}?

":

非贪婪匹配之前的表达式m到n次

"\":

将下一个字符转义

[ABC]:

指定一个字符集

[^ABC]:

指定一个不在范围内的字符集

"A|B":

 匹配条件A或条件B

(pattern):

 匹配括号内的表达式,并作为匹配项

(?

:

pattern):

 匹配括号内的表达式,但不作为匹配项

(?

#...):

注释,忽略

(?

=pattern):

预查,若之后的内容匹配表达式,则成立

(?

!

pattern):

预查,若之后的内容不匹配表达式,则成立

(?

Ppattern):

给一个匹配项命名

(?

P=name):

匹配与之前命名的匹配项内容相同的部分

如:

s='12a34a56'

   re.findall('12(?

P.).*(?

P=xxx)56)',s)

   (?

P.)匹配到a,则(?

P=xxx)的内容也必须为a时才pp

(?

iLmsux):

设置I,L,M,S,U,orX标记

转义符说明:

\A:

匹配开头

\Z:

匹配结尾

\b:

匹配开头或结尾的空字符串,通常是指单词边界?

\B:

匹配非开头和结尾的空字符串,通常是指非单词边界?

\d:

匹配一个数字。

等价于[0-9]

\D:

匹配一个非数字。

等价于[^0-9]

\s:

匹配一个空白字符。

等价于[\t\n\r\f\v]

\S:

匹配一个非空白字符。

等价于[^\t\n\r\f\v]

\w:

匹配一个字母数字字符。

等价于[a-zA-Z0-9_]

\W:

匹配一个非字母数字字符。

等价于[^a-zA-Z0-9_]

\\:

匹配一个反斜杠

\f:

匹配一个换页符。

等价于\x0C和\cL

\n:

匹配一个换行符。

等价于\x0A和\cJ

\r:

匹配一个回车符。

等价于\x0D和\cM

\t:

 匹配一个制表符。

等价于\x09和\cI

\v:

匹配一个垂直制表符。

等价于\x0B和\cK

\xHH:

匹配HH,其中 HH为十六进制转义值

\uHHHH:

匹配HHHH,其中 HHHH是一个用四个十六进制数字表示的Unicode字符

常用匹配:

匹配中文字符的正则表达式:

[\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):

[^\x00-\xff]

匹配空行的正则表达式:

\n[\s|]*\r

匹配首尾空格的正则表达式:

(^\s*)|(\s*$)

匹配Email地址的正则表达式:

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

匹配网址URL的正则表达式:

^[a-zA-z]+:

//(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*\\?

\

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2