day14

                                            可变和不可变参数

不可变类型:

类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。

可变类型:

类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响 

                                                必选参数

必选参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。 

  def f(a,b):

        return a+b

 print(f(1,2))

                                               默认参数

调用函数时,缺省参数的值如果没有传入,则被认为是默认值。

def f(a,b=100):

       return a+b

print(f(1))

print(f(1,2))

                                                 可变参数-元组

在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。参数组装成一个tutple

def calc(*numbers):

       sum = 0

for n in numbers:

      sum = sum + n * n

 return sum

                                                    可变参数-字典

变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

def person(name, age, **kw):

     print('name:', name, 'age:', age, 'other:', kw

                                                   关键字参数

对于关键字参数,函数的调用者可以传入任意不受限制的关键字参数。至于到底传入了哪些,就需要在函数内部通过kw检查。

注意:如果要限制关键字参数的名字,就可以用命名关键字参数

def person(name, age, *, city, job):

     print(name, age, city, job)

                                                   参数组合

在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:

必选参数、默认参数、可变参数。

                                             变量作用域介绍

1、一个程序的所有的变量并不是在哪个位置都可以访问的。访问权限决定于这个变量是在哪里赋值的。

2、变量的作用域决定了在哪一部分程序你可以访问哪个特定的变量名称。两种最基本的变量作用域如下:

1、全局变量

2、局部变量

                                              局部变量

1、局部变量,就是在函数内部定义的变量

2、不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响

3、局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用

                                             全局变量

1、如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是全局变量

2、如果要再函数中修改全局变量,使用global声明。

                                          全局和局部变量重名

如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量

                                                小结

1、在函数外边定义的变量叫做全局变量

2、全局变量能够在所以的函数中进行访问

3、如果在函数中修改全局变量,那么就需要使用global进行声明

4、如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的,

小技巧强龙不压地头蛇

                                             递归函数

1、如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数。

2、满足递归的条件:

1、有循环的内容

2、有跳出的条件

3、递归默认是有递归深度要求的。

                                             匿名函数

1、用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。

2、lambda函数的语法只包含一个语句,如下:

lambda [arg1 [,arg2,.....argn]]:expression

注意:

3、Lambda函数能接收任何数量的参数但只能返回一个表达式的值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容