zoukankan      html  css  js  c++  java
  • 函数

    一.控制文件内指针移动

    1.只有在t模式下read(n),n代表字符个数,除此以外都是以字节为单位

    2.f.seek():指针移动是以字节为单位的,第一个参数是移动的字节的个数,第二个参数是模式

         三种模式:只有0模式既可以在t下用也可以在b下用,而1,2两种模式只能在b模式下使用

             0(默认的):参照的是文件开头

             1 :                参照的是指针当前所在的位置

             2:                 参照的是文件末尾  # f.seek(0,2) #指针移动到文件末尾

    二.函数的基本使用

    1.什么是函数

    在程序具备某一功能的工具----函数

    事先准备好工具----函数的定义

    遇到应用场景、拿来就用----函数的调用

     分为两类:内置函数和自定义函数

    2.为何要用函数

    为了解决代码冗余、程序的组织结构不清晰、可读性差以及扩展性差的问题

    3.如何用函数

    函数的使用必须遵循一个原则:先定义,后引用

    3.1 先定义

    定义语法:def 函数名(参数1,参数2,。。。):

                            ‘’‘

                           文档注释                       

                            ’‘’

                            代码块

                            return 值

    3.2 后调用

    函数名()

    3.3 定义阶段只检测语法,不执行代码

    3.4 调用阶段:开始执行函数体代码

    4.定义函数的三种形式

    4.1无参函数:函数名后不添加任何参数,只是执行一些操作时使用

    4.2有参函数:函数名后添加参数,需要根据外部传进来的参数,才能执行相应的逻辑

    4.3空函数:函数体代码为pass,用来设计代码结构

    5.调用函数的三种形式

    5.1语句形式:函数名()

    5.2表达式形式:需要对函数的返回值进行进一步的处理  # 函数名()*12

    5.3函数的调用可以当作另一个函数的参数传入 # 函数名(函数名())

    三.函数的返回值

    1.什么是函数的返回值

    返回值是函数体代码的运行成果

    2.为何要有返回值

    需要拿到函数处理结果做进一步的处理,则函数必须要有返回值

    3如何用返回值

    return返回值的特点:

    3.1返回的值没有类型限制,也没有个数限制

        3.1.1return或者函数没return:返回值为None

        3.1.2return  值:返回的就是该值本身

        3.1.3return  值1,值2,值3:返回元组(值1,值2,值3)

    3.2return是函数结束运行的标志,函数内可以有多个return,但只要执行一次,函数就立即结束,并且将return值当作本次调用的结果返回

    四.函数参数的使用

    1.函数的参数分为两大类:

    1.1形参:在定义函数时括号内指定的参数(变量名),称之为形参

    1.2实参:在调用函数时括号内传入的值(变量值),称之为实参

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

    2.函数参数详解

    2.1形参:

    2.1.1位置参数:在定义阶段,按照从左到右的顺序依次定义的形参

    特点:必须被传值,所传值的个数不能多,也不能少

    2.1.2默认参数:在定义阶段,就已经为某个形参赋值,该形参称之为默认形参

    特点:在定义阶段就已经有值,意味着调用阶段可以不用为其传值,也可以为其传值

    注意点:位置形参必须放在默认形参的前面

    使用:在调用函数时,默认形参在大多数的情况下,不需要为其传值

    2.1.3形参中*与**的用法

          1.形参中带*:*会将溢出的位置实参存成元组的形式然后赋值给其后的变量名(*后面跟的是能被for循环循环的)

          2.形参中带**:**会将溢出的关键字实参存成字典的格式然后赋值给其后的变量名(**后面跟的是字典)

    2.2实参

    2.2.1位置实参:在调用阶段,按照从左到右的顺讯依次传入的值

    特点:这种传值方式会与形参一一对应

    2.2.2关键字实参:在调用阶段,按照key=value的格式传值

    特点:可以完全打乱位置,但仍然能为指定的形参传值

    注意:同一个形参只能被赋值一次,位置实参必须放在关键字实参的前面

    2.2.3实参中带*与**的用法(通常*args,**kwargs)

         1.实参中带*:先将实参打散成位置实参,然后再与形参做对应

         2.实参中带**:先将实参打散成关键字实参,然后再与形参做对应

    2.3可变长的参数:

    可变长指的是实参值的个数不固定。

    而实参有按位置和按关键字两种形式定义,针对这两种形式的可变长,形参对应有两种解决方案来完整地存放它们,分别是*args,**kwargs

     

    当我们想把一个函数的实参原封不动传给另一个函数的形参时:

    def bar():

        pass

    def func(*args,**kwargs):

         bar(*args,**kwargs)

    func()

  • 相关阅读:
    D3.js 几种常用的坐标轴
    前端页面的用户体验优化设计
    用can-fixture拦截Ajax并模拟响应
    webpack入门及使用
    CommonJS和AMD规范
    凝思6.0虚拟机搭建--遇到的问题
    凝思6.0安装vmware tools记录
    linux定时任务crontab命令
    find命令使用指南
    关于字体、字形、字符集、字体大小
  • 原文地址:https://www.cnblogs.com/wangke0917/p/10027514.html
Copyright © 2011-2022 走看看