Python语法备忘(I)

来源:互联网 发布:康拉德格拉夫钢琴 知乎 编辑:程序博客网 时间:2024/05/20 06:51

1.读写文件

这里写图片描述

#读文件try:    f = open(filename,'r')    print f.read()finally:    if f:        f.close()#按行来读for line in f.readlines():    print line#用withwith open(filename,'r') as f:    print f.read()#写f.write(str)    #文件还有一个__next__()方法,每次返回文件中的下一行#这种是读取文本文件的最佳方式,因为不是一次性把文件加载到内存中for line in open('data.txt'):    print(line,end='')

2.命名空间LEGB法则

命名空间—-对变量的分组划分
python中一切皆对象,c++中的变量名是内存地址的别名,而python中的变量名其实是一个字符串对象。
命名空间实际上是一个字典,{name:object}保存了变量名称到对象之间的映射关系。
LEGB规则规定了查找一个名称的顺序:local–>enclosing–>global–>build-in

Local–函数内的命名空间
Enclosing function locals–外部嵌套的函数的命名空间
Global–函数定义所在的模块的命名空间
Build-in–python内置模块的命名空间

3.异常处理机制

(1)try..except..finally..else

try:    input = open(filepath,'r')except Exception as e:#出现异常    print eelse:#未出现异常    print input.read()finally:#始终执行    f.close()

(2)with.. as

with open(filename,'r') as f:    f.read()

上下文管理器,有enter(),exit()方法。发生异常则调用默认的异常处理器处理
(3)assert

assert expression

表达式为True,则继续执行
表达式为False,则中断程序,调用默认的异常处理器

4.正则表达式

参考:
python正则表达式指南
正则表达式入门
(1)正则表达式匹配流程
这里写图片描述
(2)正则表达式语法
这里写图片描述
(3)python re模块
示例:

import rekey = "hello,world" #源字符串p1 = r"hello" #正则表达式pattern = re.compile(p1)#正则表达式编译为pattern对象match = pattern.match(key)#匹配字符串if match:    print match.group() #获得匹配的分组#也可以写成,缺点是pattern没法复用re.match(r'hello', 'hello world!')

re.compile(strPattern[, flag]) — 用于将正则表达式字符串编译为pattern对象
第二个参数flag是匹配模式,比如re.compile(‘pattern’, re.I | re.M)

pattern对象
pattern对象是一个编译好的正则表达式
方法:
match(string[, pos[, endpos]]) | re.match(pattern, string[, flags]):
是否在字符串刚开始的位置匹配。注意:这个方法并不是完全匹配。当pattern结束时若string还有剩余字符,仍然视为成功。想要完全匹配,可以在表达式末尾加上边界匹配符’$’。

search(string[, pos[, endpos]]) | re.search(pattern, string[, flags]):
字符串内查找模式匹配,只要找到第一个匹配然后返回;如果字符串没有匹配,则返回None。
pos和endpos的默认值分别为0和len(string));re.search()无法指定这两个参数

re.findall(pattern, string[, flags])
遍历匹配,可以获取字符串中所有匹配的字符串,返回一个列表

re.match与re.search与re.findall的区别:

re.match**只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;re.search匹配整个字符串,直到找到一个匹配**。
re.findall遍历匹配,可以获取字符串中所有匹配的字符串,返回一个列表

Match对象
match对象是一次匹配的结果,包含了很多关于此次匹配的信息
属性:
string–匹配时使用的字符串
re–pattern对象
pos–字符串中pattern开始搜索的索引
endpos–结束搜索的索引
lastindex–最后一个被捕获的分组的索引
lastgroup–最后一个被捕获的分组的别名
方法:
group([group1, …]):
获得一个或多个分组截获的字符串;指定多个参数时将以元组形式返回。group1可以使用编号也可以使用别名;编号0代表整个匹配的子串;不填写参数时,返回group(0);没有截获字符串的组返回None;截获了多次的组返回最后一次截获的子串。

原创粉丝点击