• python3 day05 今日大纲


    1. 上周内容回顾
    1. 闭包:
    内层函数对外层函数变量的使用
    def outer():
    a = 10
    def inner():
    print(a)
    return inner

    ret = outer()

    ret()
    ret()
    ret()
    ret()
    2. 迭代器
    dir() 查看某变量能执行哪些操作

    可迭代对象: __iter__()
    迭代器: __iter__() __next__()

    from collections import Iterator, Iterable
    isinstance(xxx, Iterator)

    迭代器: __next__()
    1. 省内存
    2. 惰性机制
    3. 只能向前. 不能反复

    3. 生成器
    1. 生成器函数:
    yield

    函数() => 创建一个生成器对象
    生成器.__next__() 获取到生成器中的数据

    send() 可以给上一个yield位置传值


    2. 生成器表达式

    列表推导式: [结果 for if条件]
    字典推导式: {结果 for if}

    生成器表达式: (结果 for if条件)

    本质就是迭代器


    4. 内置函数:
    len()
    map(func, lst) 映射
    filter(func, lst) 过滤
    sorted(lst, key=func, reverse=) 排序
    format() 格式化
    eval()
    exec()
    zip()
    globals()
    locals()
    bin()
    hex()
    oct()
    int()

    lambda x:x+1

    5. 装饰器
    通用装饰器的写法

    def wrapper(fn):
    def inner(*args, **kwargs):
    '''在之前'''
    ret = fn(*args, **kwargs)
    '''在之后'''
    return ret
    return inner

    @wrapper # func = wrapper(func)
    def func():
    pass

    func() # 实际执行的是inner

    开闭原则:
    开: 对功能的扩展开放
    闭: 对修改源代码封闭

    带有参数的装饰器
    def wrapper_out(参数):
    def wrapper(fn):
    def inner(*args, **kwargs):
    '''在之前'''
    ret = fn(*args, **kwargs)
    '''在之后'''
    return ret
    return inner
    return wrapper

    @wrapper_out(实参)
    同一个函数被多个装饰器装饰

    2. 模块
    模块就是一个py文件或者装有py文件的文件夹

    import 文件
    from 文件(包) import 具体内容

    简单的分类 :
    1. python内置模块
    2. 自己定义的模块
    3. 第三方模块

    3. collections
    Iterable 可迭代
    Iterator 迭代器

    Counter 计数器
    defaultdict 默认值字典

    deque 双向队列

    queue 队列
    先进先出

    stack 栈, List
    先进后出. FILO

    OrderedDict 排序字典

    4. random
    random.randint()

    5. time模块
    %Y-%m-%d %H:%M:%S

    数字 -> 时间 : 把数字转化成结构化时间 结构化时间转化成格式化时间
    时间 -> 数字: 把时间转化成结构化时间 结构化时间转化成时间戳

    6. pickle模块
    bytes -> 硬盘识别的
    lst = ["abc", "def"]

    把一个对象转化成bytes的过程被称为序列化
    把bytes转化回对象被称为反序列化

    7. json模块(重点)
    dumps
    loads

    8. os模块
    和操作系统相关的内容

    open("", mode="w") 创建文件
    os.remove() 删除文件
    os.rename() 重命名


    要记住的
    os.makedirs() 创建文件夹
    os.rmdir() 删除文件夹

    os.listdir() 列出文件夹内所有文件的名字
    os.getcwd() 获取到当前工作目录

    os.path.exists() 判断某个文件或者文件夹是否存在
    os.path.join() 拼接路径

    9. sys模块
    关于解释器相关的操作
    sys.argv
    sys.path

    10. 正则表达式
    规定一个格式. 匹配字符串用的

    普通字符, 平时用到的一些文字信息

    元字符(重点)
    1 . 除了换行符以外的所有内容
    2 d 数字
    3 w 匹配数字, 字母, 下划线
    4 换行
    5 s 匹配所有的空白
    6 ^ 字符串的开始
    7 $ 字符串的结束
    8 [] 字符组
    9 [^....] 字符组
    10 () 分组 (重要)

    量词
    * 表示匹配0次或者多次, 尽可能多的匹配
    + 表示匹配1次或多次
    ? 表示0次或者1次
    {n} 表示重复n次
    {n,} 重复n次或更多次
    {n,m} 重复n次到m次

    练习1: 匹配一个邮箱 homexue@126.com 448910663@qq.com
    练习2: <span><div>fdsafasdfasdfsda</div></span>

    11. re模块(爬网站--dytt)
    findall
    finditer
    search
    match

     

  • 相关阅读:
    springcloud生态图
    redis持久化机制之AOF与RDB
    关键字的理解
    Java IO6 :IO总结
    Java IO5:管道流、对象流
    Java IO4:字符流进阶及BufferedWriter、BufferedReader
    Java IO3:字节流
    Java IO2:RandomAccessFile
    Java IO1:IO和File
    java学习笔记
  • 原文地址:https://www.cnblogs.com/lilyxiaoyy/p/10783065.html
Copyright © 2020-2023  润新知