1.函数介绍:
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
1.内置函数
2.自定义函数
2:函数的定义与调用
1.定义:
def 函数名([参数1,参数2.。。]):
代码块
[return 表达式]
(def 关键字 ;必须有小括号;冒号;代码块要有缩进)
2. 调用
函数名([参数])
(函数名得存在;参数对应的值; 函数是不可变型,传递的时候一方改变不影响另一方)

3.函数的四种类型:
根据是否有参数和是否有返回值,函数分为4种类型
1.无参,无返回值

2.有参,无返回值函数

3.无参,有返回值

4.有参,有返回值

return的介绍:

4.函数嵌套

5.参数的介绍
1.可变和不可变参数
可变:
类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
不可变:
类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响

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

3.默认参数
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。
没有默认值参数一定写在有默认值参数的前面

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

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

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

7.参数的顺序
必选参数、默认参数、可变参数。

全球变量和局部变量
变量的作用域01

变量的作用域02

变量的作用域03

变量的作用域04

变量的作用域05

变量的作用域06

变量的作用域07

递归函数
1.如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数。
2.满足递归的条件:
1.有循环的内容
2.有跳出的条件
3.递归默认是有递归深度要求的。

匿名函数
1.用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。
2.lambda函数的语法只包含一个语句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
注意:
1.Lambda函数能接收任何数量的参数但只能返回一个表达式的值
匿名函数01
有参,有返。
函数体简短,一般只有一句。将:后的结果作为返回值
lambda 参数1,参数2,参数3...:结果值

匿名函数02

匿名函数02-1

匿名函数03

函数作为参数对象

网友评论