python入门——函数的定义、调用、函数文档、参数

  • 学习链接:https://dsw-dev.data.aliyun.com/
  • 目录:

    • 函数的定义

    • 函数的调用

    • 函数文档

    • 函数的参数

  • 学习内容:

    • 函数的定义
      • python中万物皆对象,python把函数也当作对象,可以从另一个函数中返回出来构建更高阶的函数,比如:参数是函数,返回值是函数
      • 函数以 def 开头,后接 函数名称(参数):
        def FunctionName(parameter1,parameter2,...):
            function_suite
            return [expression]
    • 函数的调用 
      def printme(str):
          print(str)
      printme("我要调用用户自定义函数!")
      #我要调用用户自定义函数!
    • 函数文档
      def MyFirstFunction(name):
          "函数定义过程中name是形参"
          print("传递进来的{0}是实参,因为他具有具体的参数值".format(name))
      MyFirstFunction("丁丁的程序人生")
      #传递进来的丁丁的程序人生是实参,因为他具有具体的参数值
      print(MyFirstFunction.__doc__)
      #函数定义过程中name是形参
      help(MyFirstFunction)
      #Help on function MyFirstFunction in module __main__:
      
      #MyFirstFunction(name)
          #函数定义过程中name是形参
    • 函数的参数
      • python的参数具有非常灵活多样的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。从简到繁的参数形态为:位置参数、默认参数、可变参数、关键字参数、命名关键字参数、参数组合
        • 位置参数
          def FunctionName(arg1):
              "函数——文档字符串"
              function suite
              return [expression]
          

          arg1 - 位置参数,这些参数在调用函数时位置要固定

        • 默认参数
          def FunctionName(arg1,arg2=v):
              "函数——文档字符串"
              function suite
              return [expression]

          arg2 - 默认参数=默认值,调用函数时,如果默认参数的值没有传入,则被认为是默认值。默认参数一定要放在位置参数后面,不然程序会报错。

          def printinfo(name,age=8):
              print("Name:{0},Age:{1}".format(name,age))
          printinfo('小明')
          #Name:小明,Age:8
          printinfo('小明',10)
          #Name:小明,Age:10

          python允许调用函数时参数位置与声明时不一致,因为python解释器能够用参数名匹配参数值

        • 可变参数
          • 顾名思义,可变参数就是传入的参数个数是可变的,可以是0,1,2到任意个,是不定长的参数
            def FunctionName(arg1,arg2=v,*args):
                "函数-文档字符串"
                function suite
                return [expression]

             

          • *args - 可变参数,可以是从零个到任意个,自动组装成元组。

          • 加了星号(*)的变量名会存放所有未命名的变量参数。
            def printinfo(arg1,*args):
                print(arg1)
                for a in args:
                    print(a)
            printinfo(10,20,30,40)
            #10
            #20
            #30
            #40

             

        • 关键字参数
          def FunctionName(arg1,arg2=v,*args,**kw):
              "函数-文档字符串"
              function suite
              return [expression]

          **kw - 关键字参数,可以是从零个到任意个,自动组装成字典。

          def printinfo(arg1, *args, **kwargs):
              print(arg1)
              print(args)
              print(kwargs)
          
          
          printinfo(70, 60, 50)
          # 70
          # (60, 50)
          # {}
          printinfo(70, 60, 50, a=1, b=2)
          # 70
          # (60, 50)
          # {'a': 1, 'b': 2}

          ★【可变参数】和【关键字参数】的区别:可变参数可以从零个到无数个,它们在函数调用时自动组装成为一个元组;关键字参数可以从零个到无数个,它们在函数内部自动组装为一个字典。

        • 命名关键字参数
          def FunctionName(arg1,arg2=v,args,*,nkw,**kwargs):
              "函数-文档字符串"
              function suite
              return [expression]

          *,nkw - 命名关键字参数,用户想要输入的关键字参数,定义方式是在nkw前面加一个*分隔符;如果用户想要限制关键字参数的名字,就可以使用【命名关键字参数】;需要注意的是,使用命名关键字参数时,一定不要缺少参数名。

          def printinfo(arg,*,nkw,**kwargs):
              print(arg)
              print(nkw)
              print(kwargs)
          
          printinfo(10,nkw=20,a=3)
          #10
          #20
          #{'a':3}

          如果在调用函数的时候缺少命名关键字参数的参数名,python解释器会默认传入的是位置参数。

          printinfo(10,20,a=3)
          #TypeError: printinfo() takes 1 positional argument but 2 were given

          !命名关键字参数一定不要少了【*】分隔符,另外,命名关键字参数也可以赋予默认值。

        • 参数组合
          • 以上5种参数的组合方式有:【必须保证顺序】
            • 位置参数、默认参数、可变参数、关键字参数
            • 位置参数、默认参数、命名关键字参数、关键字参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值