阿里云天池python训练营

阿里云天池python训练营

一、函数

1. 函数的定义

函数是对象 可从函数中返回用于构建高阶函数

def 函数名 (参数):      

     "函数_文档字符串"        

     function_suite        

     return [表达式]

def关键词开头 后接函数名和():

形参必须放在圆括号中(形参只是形式 表示占据的参数位置)

函数的第一行语句可使用文档字符串(存放函数说明 利用.__doc__调用)

执行的代码需要缩进

return [表达式] 结束函数 选择性地返回一个值

没有表达式相当于返回None

 

 

2. 函数的调用

函数名 (实参)

 

3.函数参数

函数具有灵活多样的参数形态 既可以简单调用 又可以传入复杂的参数

位置参数

def 函数名 (arg1):      

     "函数_文档字符串"        

     function_suite        

     return [表达式]

arg1: 位置参数  在调用函数时位置固定

默认参数

def 函数名 (arg1,arg2=v):      

     "函数_文档字符串"        

     function_suite        

     return [表达式]

arg2:默认参数 = 默认值 在调用函数时如果没有传入 则被使用默认值

默认参数放在位置参数后

函数调用时 参数的顺序可以与声明不一致

可变参数

可变参数传入的参数个数是可变的 不定长的参数

def 函数名 (arg1,arg2=v,*args):      

     "函数_文档字符串"        

     function_suite        

     return [表达式]

*args:可变参数 可是从零到任意个 自动组装成元组

加*的变量名会存放所有未命名的变量参数

关键字参数

def 函数名 (arg1,arg2=v,*args, **kw):      

     "函数_文档字符串"        

     function_suite        

     return [表达式]

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

命名关键字参数

def 函数名 (arg1,arg2=v,*args, *,nkw, **kw):      

     "函数_文档字符串"        

     function_suite        

     return [表达式]

*, nkw:命名关键字参数 输入的关键字参数 在nkw 前面加分隔符 *

限制关键字参数名字 可用「命名关键字参数」

命名关键字参数不能缺少参数名

参数组合

参数定义的顺序是:

位置参数 默认参数 可变参数和关键字参数

位置参数 默认参数 命名关键字参数和关键字参数

命名关键字参数限制了可传入的参数名 允许提供默认值

 

4. 函数的返回值

return 语句有指定返回值时 返回其指定值

没有 return 语句时 函数运行结束会隐含返回一个 None 作为返回值 类型是 NoneType

函数可存在多条 return语句 但只有一条被执行

函数执行return 语句 会立刻返回 结束调用

return 只能返回单值 但可以存在多个元素

 

5.变量作用域

变量的赋值位置决定其访问权限

局部变量:定义在函数内部的变量(局部作用域)

全局变量:定义在函数外部的变量(全局作用域)

局部变量只能在其被声明的函数内部访问 全局变量可以在整个程序内访问

内部作用域修改外部作用域的变量时使用关键字global nonlocal 

闭包

函数式编程的重要语法结构 特殊的内嵌函数

如果内部函数里引用外层非全局作用域的变量 内部函数就叫闭包。

闭包是包含环境变量取值的函数对象(函数对象的closure属性中)

闭包作用域:闭包可访问外层非全局作用域的变量

闭包的返回值通常是函数

修改闭包作用域中的变量 使用 nonlocal 关键字

递归

函数在内部调用自身本身 就是递归函数(默认递归层数为 100)

 

二、Lambda表达式

 

1. 匿名函数的定义

Python 里的函数类型:

def :正规函数
lambda :匿名函数

lambda 参数列表: 表达式

lambda:匿名函数关键词

参数列表:可以是位置参数 默认参数 关键字参数(与def定义的参数类型相同)

表达式:输入函数参数 输出值

表达式中没有 return  表达式本身就是返回值

匿名函数拥有自己的命名空间 不能访问自己参数列表之外或全局命名空间里的参数

 

2. 匿名函数的应用

函数式编程:代码中每一块都不可变 纯函数的形式组成

常应用于函数式编程的高阶函数中 主要有两种形式:

参数是函数 (filter, map)

返回值是函数 (closure)

 

filter(function, iterable)

过滤序列 过滤掉不符合条件的元素 返回一个迭代器对象 可使用 list() 转换为列表

map(function, *iterables)

根据提供的函数对指定序列做映射

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值