zoukankan      html  css  js  c++  java
  • LF 模块二 考试复习以及总结

    1.包的导入

    2.文件open读取路径问题 如何方位其他包下的文件
    需要复习的 re 导入 log 非固定参数


    作用域:
    装饰器: 前置知识闭包
    序列化:
    正则:
    os,sys,time,迭代器,生成器,内置函数,递归,文件操作。


    文件操作
    utf - 8 decode -unicode
    unicode encode gbk,utf-8

    wb 写二进制,写图片,写内存
    图片视频是二进制


    读所有
    read()

    读一行
    for line in file:
    print(line)

    追加模式 a

    读写 r+ 先读后写,在后面追加

    写读 w+ 创建,在写,可以读新写的

    文件操作方法。
    fineno 返回文件句柄在内核中的索引值

    flush把文件从内存buffer中强制刷新到硬盘

    文件在close时候,才会刷入硬盘,否则在内存中,如果直
    接写入硬盘会很慢,buffer满了才会刷入
    主动刷入硬盘需要用flush

    readable 判断文件是否可读(用于判断是不是特殊文件,linux,w
    文件也不能读)

    readline 只读一行,遇到 or 为止

    f.tell 返回当前光标为止

    f.seek(50) 光标位置
    这个50究竟是什么: 只是移动了光标位置,并没有读取内容
    read(1)<<读了一个字符
    tell seek 找的都是字节 utf-8汉字3个字节 字母,数字
    ,符号,1个字节

    gbk 汉字2个字节 字母,数字,
    符号1个字节
    writeable 文件是否可写

    f.truncate() 按指定长度截断文件 从当前位置开始截断
    路飞学院 seek(3) --- f.truncate() --- 路
    路飞学院 seek(3) ---- f.truncate(6) --路飞 函
    数内传入值相当于从开头获得到传入值位置

    readlines():
    fileObject.readlines( );
    返回列表,包含所有的行。

    修改文件
    无法直接插入,因为硬盘的存储原理导致
    只有一个办法,新建一个文件,写入,替换旧文件,改名

    不能读取所有,不知道文件有多大,会撑爆内存
    所以可以每读一行,检测是否有修改内容,修改后,写入新文件,再
    替换

    要么 占硬盘(写新文件)
    要么 占内存(全部读取),如果文件变小了,可以truncate把后面
    的去掉

    line = line.replace(old_str,new_str)后面替换前面


    函数:
    定义 函数是指将一组语句的集合通过一个名字封装起来,要想执行
    这个函数,只需要调用函数名即可

    参数
    形参:只有在被调用时,才会分配内存单元,调用结束时释放内存。
    形参只在函数内部有效,调用结束后不再使用

    实参 可以是常量,变量,表达式,函数,无论是何种类型,在进行
    函数调用时,必须有确定值,才能传给形参。


    默认参数
    def stu (name,age,country,course)>> def stu
    (name,age,course,country="cn")

    传入参数时,country可以不用写
    为什么默认参数要放在位置参数(非默认参数)后面?
    传值需要与形参一一对应


    关键参数
    在传参时候会用 指定一个参数名,给这个参数指定值 stu
    ('alex',course=python,age=19)
    关键参数要放在位置参数之后


    作用域:
    python中函数就是一个作用域 局部变量放置在其作用域中
    代码定义完成以后,作用域已经生成,作用域链向上查找
    00000000000000000000000000000000000000000000000000
    map()函数
    map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list
    ,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的
    list 并返回。

    高阶函数
    变量可以指向函数,函数的参数能接受变量,那么 一个函数就可以
    接受另一个函数作为参数,即高阶函
    def a():
    return
    def b(x):
    pass
    b(a)

    1.接受另一个函数当参数的函数 就是高阶函数
    2.返回结果里包含了函数,就是高阶函数


    递归:


    好理解 自己调用自己
    几个特点
    1.必须有结束条件
    2.深层递归,规模要比上一次减少
    3.效率低,过多会栈溢出

    尾递归
    例如:
    def a(x):
    print(x)
    return a(x+1) <调用下一层时候退出了,用不到第一层的调用
    ,因为已经返回,下一层跟本层没有联系,就可以优化这个。
    python语言中,没有尾递归优化。


    内置方法
    abs()取绝对值
    dict()转字典
    help()帮助
    min()max() 取最小,最大
    all() 判断列表所有的值都是true,返回true 1 2 3 -1 -2 真,0

    bool() 判断是True还是false
    但是 all([])空列表 返回的是True bool([])是false
    any() 如果列表中任意一个是True,返回True
    dir() 打印当前函数存在的所有变量


    生成器
    L = (x*x for x in range(10))

    def fib(max):
    n,a,b = 0,0,1
    while n < max
    yield b
    a,b = b,a+b
    n += 1
    return 'done'
    f = fib(6)

    可迭代 Iterable
    集合类 列表,元组,字典,集合,字符串
    生成器generator ,包括生成器和带yield的函数
    判断
    isinstance([],Iterable) > True
    可for循环

    迭代器:
    可以被next()函数调用并不断返回下一个值得对象成为迭代器
    Iterator
    isinstance([],Iterator) > False
    生成器都是迭代器
    把可迭代对象变成迭代器:iter()
    isinstance(iter([]),Iterator) >True


    补充
    参数位置顺序:位置参数-关键参数-默认参数-非固定参数
    装饰器必备条件:1.高阶函数。2.闭包

  • 相关阅读:
    自动跳转至首页(Java Script)
    简单的轮播图(Java Script)
    蓝桥杯 2016年 第七届 四平方和(JAVA)
    蓝桥杯 2016年 第七届 剪邮票(JAVA)
    蓝桥杯 2015年 第六届 生命之树(JAVA)
    蓝桥杯 2015年 第六届 垒骰子(JAVA)
    numpy笔记
    opencv安装和运行
    vs code环境配置注意点
    numpy中matrix使用方法
  • 原文地址:https://www.cnblogs.com/alexstraze/p/9357674.html
Copyright © 2011-2022 走看看