Python学习_14 函数、类相关复习,正则表达式
1、文件操作复习
文件操作格式:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018\4\29 0029 20:10
# @Author : xiexiaolong
# @File : demon3.py
import codecs
with codecs.open("demo2", "r") as f:
pass
2、高阶函数sorted复习
sort 与 sorted 区别:sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作;list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作
语法:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018\4\29 0029 20:10
# @Author : xiexiaolong
# @File : demon3.py
m =
dict(a=3,
b=3,
d=6,
s=1,
f=
5)
print(dict(sorted(m.items(),key=lambda
d:d[1])))
print(dict(m))
3、匿名函数lambda
add = lambda x,y:x+y
4、class
定义class先定义一个构造器函数__init(args)__,然后在定义一系列函数,然后实例化类,最后定义主函数main()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018\4\29 0029 20:10
# @Author : xiexiaolong
# @File : demon3.py
class A(object):
def __init__(self,name):
self.name = name
print("intit A")
def hello(self):
print("hello {0}".format(self.name))
a = A("xxl")
if __name__ == "__main__":
a.hello()
5、装饰器
在不改变原有函数的情况下给函数增加一些功能,装饰器通过@符号使用,相当于把@后面的函数当作参数传给了装饰器
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018\4\29 0029 20:10
# @Author : xiexiaolong
# @File : demon3.py
def startEnd(fun):
def a():
print("start")
fun()
print("end")
return a
@startEnd
def hello():
print("hello")
h = hello
h()
6、模块复习
os模块:
os.system()
纯粹的执行系统命令,没有返回结果
os.listdir() 列出目录
os.chdir() 改变目录cd
os.getcwd() pwd
os.mkdir() mkdir
os.remove
删除文件
os.rmdir 删除目录
os.path.exists()
判断是否存在目录
random,随机模块
random.randint(a, b)随机生成一个a到b的实数
random.randrange(a, b, x)随机生成一个a到b不包括b)的实数,步长是x
string模块
字符串常量
print
(string.ascii_letters)
#字母
print
(string.digits)
#数字
print
(string.ascii_lowercase)
#小写字母
print
(string.ascii_uppercase)
#大写字幕
print
(string.printable)
#可打印出来的
print
(string.punctuation)
#特殊字符
print
(string.hexdigits)
#16进制数
6位随机码生成:
print
(
""
.join(random.sample(string.ascii_letters+string.digits,
6
)))
logging日志
import
logging
logging.basicConfig(
level
=logging.DEBUG)
logger = logging.getLevelName(__name__)
logger = logging.debug(
"this is debug"
)
logger = logging.info(
"this is info"
)
logger = logging.warning(
"this is warning"
)
logger = logging.error(
"this is error"
)
logger = logging.critical(
"this is critical"
)
hashlib加密
m = hashlib.md5("".encode("utf-8"))
src = bytes("aaaaddf",encoding="utf-8")
m.update
StringIO模块和BytesIO模块 写内存
StringIO是一个类,所以使用之前要实例化
stringIO = StringIO()
json模块
json.dumps 将Python对象编码成json字符串;json.loads将字符串转化成Python对象
7、正则表达式
python正则表达式模块re,一个特殊的字符序列,来匹配一个字符串
re.match 尝试从字符串起始位置匹配;
re.search扫描整个字符串并返回第一个成功的匹配
re.findall在字符串中找到正则表达式所匹配的所有字符串,并返回一个列表,如果没找到则返回空列表
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018\4\29 0029 20:10
# @Author : xiexiaolong
# @File : demon3.py
import
re
x =
'1one2two3three4four'
print("match:{0}".format(reg1.match(x)))
print("search:{0}".format(reg1.search(x)))
print("findall:{0}".format(reg1.findall(x)))
结果:
D:\python\venv\Scripts\python.exe D:/python/0428/demon3.py
match:<_sre.SRE_Match object; span=(0, 1), match='1'>
search:<_sre.SRE_Match object; span=(0, 1), match='1'>
findall:['1', '2', '3', '4']
Process finished with exit code 0
分析:正则表达式\d匹配字符串中的数字