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()

  • 相关阅读:
    Balanced Binary Tree
    Convert Sorted List to Binary Search Tree
    Convert Sorted Array to Binary Search Tree
    Binary Tree Zigzag Level Order Traversal
    Validate Binary Search Tree
    Binary Tree Level Order Traversal II
    Binary Tree Level Order Traversal
    Maximum Depth of Binary Tree
    如何把U盘的两个盘或者多个盘合成一个
    bugku 想蹭网先解开密码
  • 原文地址:https://www.cnblogs.com/wangke0917/p/10027514.html
Copyright © 2011-2022 走看看