zoukankan      html  css  js  c++  java
  • Day10文件内指针移动和函数

    强调:只有t模式下的read(n),n代表字符个数,除此以外都是以字节为单位 ,例如f.read(4)读出4个字符

    控制文件内指针的移动:f.seek()以字节为单位
    f.tell()文件开头为准,当前指针所在位置

    f.seek(移动的字节数,三种模式):
    0(默认的模式);参照文件开头,
    1:参照指针当前所在的位置
    2:参照文件末尾
    ps:只有0模式可以在b,t模式下使用;1,2模式只可以在b模式下使用

    f.truncate(self,size)从文件开头数截断,后面的删除
    a模式打开
    f.truncate(3) 3个字节

    函数分类:1.内置函数 2.自定义函数

    函数的基本使用
    什么是函数:
    在程序具备某一功能的工具 = 函数
    事先准备好工具 = 函数的定义
    遇到应用场景,拿来就用 = 函数的调用
    先定义后调用

    为什么要用函数:
    1.代码冗余
    2.程序组织结构不清晰,可读性差
    3.扩展性差

    如何用函数:
    ​ 函数的使用必须遵循一个原则:
    ​ 1.先定义:只检测语法,不执行代码
    ​ 定义语法
    ​ def 函数名(参数1,参数2,参数3):
    ​ """ 文档注释"""
    ​ 代码块
    ​ return 值
    ​ 申请内存空间,函数体代码扔进内存空间,绑定给函数名
    ​ 定义函数的三种形式:
    ​ ①无参函数,定义时无参,调用不用传参
    ​ ②有参函数,定义时有参,调用时传参必须对应
    ​ ③空函数


    ​ 2.后调用:执行函数体代码
    ​ 函数名() :①函数名找到内存地址②加()运行内存地址内代码
    调用函数的三种形式:①语句形式:函数名()②表达式形式:res = max2(1000,200)*12 ③可以当做另外一个函数的参数

    函数的返回值:
    ​ 1.函数的返回值:函数体代码的运行成果
    ​ 2.函数为什么要有返回值:执行一段功能需要拿到函数的处理结果做进一步的处理
    ​ 3.如何用返回值:
    ​ return 返回值的特点: 1.返回的值没有类型和个数限制
    ​ 2.return多个值用逗号分隔开,以元组保存
    ​ 3.return或者没有return,默认返回none
    ​ 4.return一个值,返回的就是该值本身
    ​ 5.return是函数结束运行的标志,函数里可以有个return但是只执行一次return

    函数的参数分为两大类:
    ①形参:在定义函数括号内指定的参数(变量名),称之为形参
    ②实参:在调用函数时括号内传入的值(变量值),称之为实参

    在调用函数时,实参值(变量值)会传给形参(变量名),这种绑定关系在调用函数时生效,调用结束,绑定关系解除

    函数参数详解:
    1.形参:
    1.1位置形参:在定义阶段,按照从左到右的顺序依次定义的形参
    ​ 特点:必须被传值

    1.2默认参数:在定义阶段,就已经为某个形参赋值,该形参称之为默认形参
    ​ 特点:在定义阶段就已经有值,意味着调用阶段,可以不用为其传值
    ​ 注意点:位置形参必须放在默认参数前面

    1.3可变长参数:*,**的用法
    *args把溢出的位置实参以元组的方式存起来,赋值给*后的变量名args
    **kwargs把溢出的关键字实参以字典的方式存起来,赋值给**后的变量名kwargs

    2.1 位置实参:在调用阶段,按照从左到右依次存入的值
    ​ 特点:这种传值方式,会与形参一一对应

    2.2 关键字实参:在调用阶段,按照key=value的格式传值
    ​ 特点:可以完全打乱位置,但仍然能为指定的形参传值
    注意 : 1.同一个形参只能被赋值一次
    ​ 2.位置实参必须被关键字实参的前面

    2.3 实参中*与**的使用
    1.实参中带*:先将实参打散成位置实参,然后再与形参做对应(后的参数要可迭代)
    2.实参中带**:先将实参打散成关键字实参,然后再与形参做对应(**后只能跟字典)
    外部以什么形式给函数wrapper传参,index接收的实参以相同的形式传入
    def index(x,y,z):
    ​ print(x,y,z)
    def wrapper(*args,**kwargs):
    ​ index(
    args,**kwargs)

  • 相关阅读:
    Typora使用腾讯云图床
    2020年8月总结
    113 路径之和II
    103 二叉树的锯齿形层次遍历
    128 最长连续序列
    160 相交链表
    33 搜索旋转排序数组
    学习制作GitHub徽标
    105 从前序与中序遍历序列构造二叉树
    重新封装了layer.tips,自定义跟随弹窗
  • 原文地址:https://www.cnblogs.com/robert-zhou/p/10026051.html
Copyright © 2011-2022 走看看