初识函数

一、函数

  1.什么是函数

    函数就是具有某个具体功能的工具

  2.为什么要用函数

    开发效率快

    减少代码冗余

    提高程序的扩展性

  3.函数的定义

    关键字:def

    函数名:1.函数名的命名规格与变量名一致(只能包含字符串,下划线和数字且数字不能开头)

        2.函数名尽量能表示函数的功能

  4. 函数的简易结构

    def 函数名

    “”“函数的注释

    用来描述该函数的作用以及各个形参的类型,

    ”“”

     函数体代码

     return 函数的返回值

二、函数的返回值

  函数内要想返回给调用者值必须用关键词return

  return关键词的作用

1.不写return

  函数默认返回None

2.只写return

  return除了可以返回值之外,还可以直接结束整个函数的运行,返回的也是None

3.写return None

  跟上面只写return是一样的

4.写return返回一个值

  这个值可以是python中任意数据类型

5.写return返回多个值

  return会自动将多个值以元祖的形式返回给调用者。

6.总结

  1.所有的函数都有返回值,无论你写不写return,不写的话默认返回None

  2.光写return 或者return None 并不是为了考虑返回值,而是为了结束函数的运行。

三、函数的参数

  1.函数参数的两大类型

  形参:在函数的定义阶段,括号内写的变量名叫做该函数的形式参数,简称形参

  实参:在函数的调用阶段,括号内实际传入的值叫做实际参数,简称实参

  2.形参和实参的关系

  形参就是相当于变量名,而实参就相当于变量的值

  函数调用传参的过程就是给形参变量名赋值的过程

  3.注意

  形参和实参的绑定关系只在函数的调用阶段有效,函数运行结束后就自动解除。

  只有在函数内部有效,函数外部无任何影响。

四、位置参数

  定义:在函数定义阶段按照位置从左往右依次写的变量名叫做函数位置形参

       注意:位置形参在调用的时候 必须为其传值

     在调用函数的时候,少一个实参不行,多一个实参也不行。

     在函数的调用阶段,1.传入的参数会按照位置一 一对应给形参

              2.关键字传参

              在函数调用阶段,位置参数和关键字可以混合使用,但是必须保证

    1.位置参数必须在关键字参数的前面(越短的越靠前,越长的越复杂的靠后)

    2.同一个形参不能被多次赋值

五、默认值参数

  定义:在函数的定义阶段,形参(变量名)就已经被赋值了。

在调用的时候可以不为默认值形参传值,默认使用定义阶段就已经绑定了值。

在调用的时候如果可以给默认值形参传值,那么就使用你传的那个值。

在定义阶段 默认值形参必须放在位置形参的后面

def my_max(x, y=100):
    if x > y:
        return x
    return y
res = my_max(101)
res1 = my_max(100,1000)
res2 = my_max(y=100,x=1000)
print(res)
print(res1)
print(res2)

总结:函数在定义阶段 内部所使用的变量都已经初始化完毕了
    不会因为调用的位置的变化 而影响到内部的值(暂时可忽略)
    函数无论在什么地方被调用,都会跑到函数定义阶段去执行代码
形参中用到的值都是往函数定义阶段代码往上找

六、动态参数

  定义:可以用*和**来接受多余的(溢出的)位置实参,统一用元祖的形式处理,传递给*后面的形参名。

  站在形参的角度上看*

    形参中的*会将多余的(溢出的)位置实参 统一用元组的形式处理 传递给*后面的形参名

def func(x,y,*z):
    print(x,y,z)
func(1,2,4,5,8,7,4,55)  # 返回的值1 2 (4, 5, 8, 7, 4, 55)

     站在实参的角度上看*

  

  

        

---恢复内容结束---

原文地址:https://www.cnblogs.com/panyi2019/p/11158885.html