Python程序设计基础与应用 第五章-函数

第五章 函数整理

5.1 函数定义与使用

函数的定义:

def 函数名([参数列表]):
	'''注释'''
	函数体

无需说明函数形参类型,Python解释器会根据实参自动推断形参类型。
无需指定返回值类型,由函数中return语句返回值

递归函数:

每次递归要保持问题的性质不变。
使用更小更简单的输入
必须有一个可以直接处理的特殊情况
递归深度不可太大,否则会引起内存崩溃。

5.2 函数参数

函数可以有多个参数,也可以没有参数。

位置参数:

实参和形参的顺序必须严格一致
实参和形参的数量必须相同

默认值参数:

可以为形参设置默认值
设置了默认值的形参可以不用传值
设置了默认值的形参可以通过显示赋值来替换其默认值
注意:任何一个默认值参数右侧不可以再出现没有默认值的普通位置参数

def 函数名(...,形参名=默认值):
	函数体

关键参数:

指调用函数时的参数传递方式
可按参数名字传递值,使函数的调用和参数传递更加灵活。

可变长度参数:

*parameter:接收任意多个位置实参并将其放在一个元组中
**parameter:接收多个关键参数并将其放入字典中

序列解包:

调用含有多个位置参数的函数时,可使用列表、元组、集合、字典及其他可迭代对象作为实参,并在实参名前加一*
使用两个星号**对字典进行解包。要求实参字典中的所有键都必须是函数的形参名称,或与函数中两个星号的可变长度参数相对应。

5.3 变量作用域

变量起作用的代码范围称为变量的作用域,不同作用域内同名变量互不影响。
想要再函数内部修改一个定义在函数外的变量值,必须使用global明确声明,否则自动创建新的局部变量。
如果函数内部如果只引用某个变量但未赋值,该变量为(隐式的)全局变量。
如果有为变量赋值的操作,该变量被认为时(隐式的)局部变量。
如果局部变量与全局变量有相同的名字,那么局部变量会在自己的作用域内暂时隐藏同名的局部变量。

5.4 lambda表达式

声明匿名函数(无函数名,临时使用)
只可以包含一个表达式,不允许复杂语句和结构
在表达式中可以调用其他函数,该表达式的计算结果相当于函数的返回值。

5.5 生成器函数

包含yield语句的函数可以用来创建生成器对象
yield语句与return语句的作用相似,都用来从函数中返回值。
return语句一旦执行立刻结束函数的运行;yield语句执行并返回一个值后会暂停或挂起后面代码的执行,下次通过生成器对象的__next__()方法,内置函数next()、for循环遍历生成器对象元素或其他方式显示“索要”数据时恢复执行。
具有惰性求值的特点,适合大数据处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值