zoukankan      html  css  js  c++  java
  • 【python】函数定义和函数参数

    1、函数引入:

     1.1 定义一个函数

            def 函数名():

                pass

        1.2 函数调用

            函数名()

        1.3 函数返回值

            def func1():

                print("约吗")

                return "不约"

                print("好吧")

            func1() 

     

    函数返回值作用:

            #函数执行到return停止执行;将返回值返回给函数调用者(函数名())

             #return后多个返回值,需要用逗号隔开,接收到的返回值是元组类型;

            #执行函数时,return后内容不会打印;

    2、函数的参数

    在函数执行的时候给函数传递的信息

                1. 形参:在函数声明的位置,声明出来的变量

                    1) 位置参数.

                    2) 默认值参数:当调用的时候没传值使用默认值

         #相当于实参里的关键字参数,但在形参里叫默认值参数

         #默认参数一定在位置参数后面

          3)动态参数:

          a.位置参数的动态参数: *args

                     #可传入任意个位置参数,接收的是元组数据类型

                       b.关键字参数的动态参数 : **kwargs

                     #接收的是关键字参数,打印是字典类型

     #形参的顺序: 位置参数,*args,默认值参数,**kwargs

       2.实参:在函数调用的时候,实际给函数传递的值

                    1)位置参数. 按照位置给形参赋值必须一一对应

                    2)关键字参数. 按照名称给形参赋值

                    3) 混合参数. 先用位置参数, 再用关键字参数

    补充:

    1、解释*args 和**kwargs:

    两个是动态参数,当实参个数不确定的时候使用,*args 可接收任意个位置参数,**kwargs可接收所有的关键字参数。

    2、当定义一个函数的时候,*代表聚合;

         当执行一个函数的时候,*代表打散。

    练习题1: print(*agrs)print(args)的区别

    def func(*xargs):

        print(*xargs)

    func(1,2,3)   #结果:1 2 3

    def func(*xargs):

        print(xargs)

    func(1,2,3)   #结果:(1,2,3)

    练习题2:func(list1,list2)func(*list1,*list2)的区别

    def func(*xargs):

        print(xargs)

    list1=[1,2,3]

    list2=[4,5,6]

    func(*list1,*list2)   #结果:(1,2,3,4,5,6)

    def func(*xargs):

        print(xargs)

    list1=[1,2,3]

    list2=[4,5,6]

    func(list1,list2)    #结果:([1,2,3],[4,5,6])

    def f1(*args):

        print(*args)

    list1=[1,2,3]

    list2=[4,5,6]

    f1(list1,list2)   #结果:[1, 2, 3] [4, 5, 6]

  • 相关阅读:
    Scalding初探之番外篇:Mac OS下的安装
    Scalding初探之二:动手来做做小实验
    没有好看的 Terminal 怎么能够快乐地写代码
    Scalding初探之一:基于Scala的Hadoop利器
    Scala初探:新潮的函数式面向对象语言
    【题解】【数组】【Prefix Sums】【Codility】Genomic Range Query
    【题解】【数组】【Prefix Sums】【Codility】Passing Cars
    hibernate基于注解实现映射关系的配置
    decimalFormat
    我对shiro的初步认识
  • 原文地址:https://www.cnblogs.com/xlzhangq/p/13210906.html
Copyright © 2011-2022 走看看