函数:
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
定义和调用
定义:Def函数名(参数):
函数代码块
Return表达式
调用:
函数名
四种类型:
有参有返
无参无返
有参无返
无参有返
嵌套
Def下的永远只是定义
函数名()才是调用
可变参数和不可变参数:
可变参数:
字典、元组
不可变参数:
整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
必选参数和默认参数:
必选参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
默认参数 调用函数时,缺省参数的值如果没有传入,则被认为是默认值。
命名关键字参数:
对于关键字参数,函数的调用者可以传入任意不受限制的关键字参数。至于到底传入了哪些,就需要在函数内部通过kv检查。
如果要限制关键字参数的名字,就可以用命名关键字参数
递归函数:
如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数。
满足递归的条件:
有循环的内容
有跳出的条件
递归默认是有递归深度要求的。
匿名函数:
用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。
lambda函数的语法只包含一个语句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
注意:
Lambda函数能接收任何数量的参数但只能返回一个表达式的值
匿名函数不能直接调用print,因为lambda需要一个表达式
函数式编程介绍
函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。
函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!
包括以下5类:
高阶函数
返回函数
匿名函数
装饰器
偏函数
高阶函数:
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。