zoukankan      html  css  js  c++  java
  • python学习Day11 函数的参数列表

    复习  

    什么是函数? 具体特定功能的代码块 - 特定功能代码作为一个整体,并给该整体命名,就是函数

    函数的优点 : 1.减少代码的冗余,2.结构清晰,可读性强 3.具有复用性,开发效率高,维护成本高

    如何定义一个函数 : 用def关键词来声明函数   def  fn(参数列表):|  函数体 | return 函数的返回值

                                       定义函数时,函数体不会被执行 |  函数必须先定义后使用

    函数的四部分 :1. 函数名:存放着函数的地址,是调用函数的就依据

                               2. 函数体:解决问题的代码块

                               3. 参数列表:外界为内部提供数据的途径 --  内部需要外部的数据,就需要定义参数列表

                                4. 返回值: 将内部的结果返回给外部

    函数的使用 :1.通过函数名找到函数的地址  2. 函数名()来调用执行函数  3.得到函数执行的结果 -- 返回值

                            def add(n1, n2):

                                   return  n1 + n2

                             add(10, 20)  #只执行的函数

                             res = add(10, 20)  #执行的函数体,并拿到到函数的执行结果

                             print(add(10, 20) + 100) # 执行的函数体,并拿到函数的执行结果,再使用

    函数的分类:有无函数体:空函数 - pass 填充    |  非空函数  - 有函数体

                          有无参数: 无参函数 - 内部不需要外部数据  |  有参函数 - 内部需要外部数据

                          有无返回值: 不主动明确返回值的函数 - 系统主动在函数体末尾添加return  |   主动明确返回值的函数 - 按需求明确return

    函数的返回值:1. 没有return关键的函数:不关心的返回值,但函数的返回值为None

                             2. 有空return:不关心函数的返回值,但在特定条件下要主动结束函数,空return函数的返回值为None

                             3. return 一个值:外界就可以接收到返回的一个值

                             4. return多个值:外界用一个值接收,接收到的是元组 | 外界用多个值接收,接收的个数与返回的个数一要统一(本质采用解压赋值)

    今日内容   函数的参数  |   函数的嵌套调用 |  字符串的比较:实际上比较的是ascii码表中对应的数字,且一对一的比较,若成员少的字符串以补充,一旦有结果,就不再比较后面的元素。

                        参数的介绍:为什么要有参数: 因为内部的函数体需要外部的数据

                                              怎么定义函数的参数: 在定义函数阶段,函数名后面()中来定义函数的参数

                                              怎么使用函数的参数: 在函数体中定义的参数名直接使用

                       参数的分类:实参  |   形参

                                             实参:有实际意义的参数     在函数调用的时候,()中传入的参数

                                             形参:   在定义函数的时候,()中出现的参数, |    参数本身没有意义,当实参赋予形参值后,该形参就具备了意义

                                                         ---   补充:有默认值的形参,在没有被实实参赋值,具备的是自身意义,一旦被实参赋值,意义同实参  def add(n1, n2 =2)

                                              注:形参是对实参的值拷贝(指向同一个内存地址),所以当实参为不可变类型时,形参发生重指向,实参下变

                                                     当实参为可变类型,实参、形参两个指向同一个地址,形参、或实参发生值的内部变化,另一个也会跟着变。

                                             实参的分类:1.位置实参 :按照位置,且参数个数不多不少与形参一 一对应进行参数

                                                                   2. 关键字实参:指名道姓进行传参且个数一致,但位置随意进行传参

                                                                   实参组合传参:必须先传位置实参,再传关键字实参

                                                                    前面的是形参名,后面的是传递的实参名

                                            形参的分类 : 以*为分界,*前为位置形参: 无默认值的形参:  可以被位置与关键字实参进行传参,必须传值

                                                                                                                   有默认值的形参:可以被位置与关键字进行传参,也可以不用传,采用默认值

                                                                                                                   可变长位置形参:可以接受前两个没有接收完的位置实参,接收的个数为0~n个,为个就是一个空元组

                                                                                      *后为关键字形参:无默认值的关键字形参: 只能由关键字实参进行传参,且必须传参

                                                                                                                     有默认值的关键字形参: 只能由关键字实参进行传参,可以不用传参采用默认值

                                                                                                                     可变长关键字形参: 接收有无默认值关键字形参剩下的关键字实参,接收的个数为0~n个,0个就是空字典

                                                                      形参顺序:位置形参 a ---> 默认形参:b ----->可变长位置形参:args  ----> 有无默认值关键字形参:cde--->可变长关键字形参:kwargs

                                                                                         def fn(a, b=10, *args, c, d=20, e, **kwargs): pass

                                                                      注意点:1.可变长位置形参只能接收位置实参,要想被附上值,前面的有值位置形成参的默认值就没有多大意义,因为被重新赋值了

                                                                                    2. args与kwargs是可变长形参的变量名,所就可就自定义,但约定俗称就用args & kwargs

                                                                     形参常出现的组合:1. def f1(*args, **kwargs)

                                                                                                     2. def f2(a, b=10, **kwargs)

                                                                                                     3. def f3(a, *args, **kwargs)

                                                                                                     4. def f4(a, *, x, **kwargs)

                                                                                                     5. def f5(a, *args, x, **kwargs)

                                                                    使用法则:
                                                                               1.所有位置形参全部采用位置实参进行传值
                                                                               2.所有关键字形参全部采用关键字实参进行传值
                                                                               3.不管位置还是关键字形参,全部按照顺序进行传参

                                             函数参数的调用:函数中调用函数

  • 相关阅读:
    每日一篇文献:Robotic pick-and-place of novel objects in clutter with multi-affordance grasping and cross-domain image matching
    每日一篇文献:Intuitive Bare-Hand Teleoperation of a Robotic Manipulator Using Virtual Reality and Leap Motion
    每日一篇文献:Virtual Kinesthetic Teaching for Bimanual Telemanipulation
    HEBI Robotic Arm VR Teleoperation
    「iQuotient Case」AR device teleoperated robotic arm
    VR and Digital Twin Based Teleoperation of Robotic Arm
    HEBI Robotic Arm VR Teleoperation
    Human Robot Interaction
    Immersive Teleoperation Project
    机器人演示学习
  • 原文地址:https://www.cnblogs.com/qingqinxu/p/10769332.html
Copyright © 2011-2022 走看看