python定义函数的格式为:

 

def myfunc(para1,para2):
        '函数文档在函数定义的最开头部分,用不记名字符串表示,作用相当于注释'
        result=para1+para2**2
        return result

      这里的例子说明,python定义函数是用关键字 def ,括号里面是形参,用return 返回 函数的返回值。

      注:1、python函数里面的注释(方便函数的理解维护),可以用字符串的形式 ‘ ’给出,称为函数文档,程序不运行,相当于注释,且可以访问:面的函数访问函数文档为:myfunc.__doc__ 用help (myfunc)也可以看到函数文档

             2、python函数的使用可以直接传递参数,如:myfunc(a,b)则分别把a传递给para1,b传递给para2,也可以使用关键字参数进行传递:myfunc(para2=b,para1=1),从而避免了参数的错误传递

            3、在Python里,带*的参数就是用来接受可变数量的无名参数(没有关键字的实数)

             eg:定义函数:    

            def  myf(a,b,*p):
                 re=0
                 for each in p:
                     re+=each
                 result=2*(a+b)+re
                 return result

         当调用函数形式为:myf(1,2,1,1) 则返回值为 8,赋值情况为:a=1,b=2, 剩余的2个无名参数传给了p=(1,1),相当于一  个tumple

          等价于调用:myf(1,1,a=1,b=2)----> a,b用关键字参数进行赋值,剩余的无名参数(1,1)传递给了p

          若函数定义为: def myf(*p,a,b) 则在使用函数调用的时候必须使用关键字参数进行传递否则会函数报错 例如:

           eg: myf(1,2,1,1)---->提示‘函数中的形参a 和b没有被赋值’,因为*p先赋值,把无名参数(1,2,1,1)全部传递给了p,从而使函数输入变量不足,所以在函数定义的时候,带 * 的形参一般写在后面。

         4、定义的函数里面带有 **  表示接收存放不定的有名参数:

            例如定义函数:

     def myff(a,b,*p,**pp):
              print(a,b)
              print(p)
              print(pp)

        当调用函数是:myff(1,2,3,4,x=1,y=2)      函数返回为:

  1 2
  (3,4)
 {'x':1,'y':2}

且 type({'x':1,'y':2})---->'dict'






Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐