Python基础——函数(1)
1.函数的定义
2.函数的调用
3.函数的参数
(1)函数参数的传递
(2)默认参数
a.定义函数时,可以给函数的参数设置默认值;
b.默认参数可以没有传入值,这时候直接使用默认的值
c.如果默认参数有传入值,则使用传入的值
d.带有默认值的参数一定要位于参数列表的末尾,否则程序会报错
(3)不定长参数
用于函数能够处理的参数个数比实际定义的参数个数多的场景
Ⅰ.传入的参数与形参的个数相等
Ⅱ.传入的参数比形参的个数多
4.函数的返回值
指程序中的函数进行完后给调用者的一个结果
函数可以有多个返回值,这些值保存在一个元组中
5.函数的类型
(1)函数无参数,无返回值
既不能接收参数,也没有返回值
(2)函数无参数,有返回值
(3)函数有参数,无返回值
(2)函数有参数,有返回值
6.函数的嵌套调用:一个函数中调用了另外一个函数
7.函数变量的作用域
(1)函数变量的4种作用域
Ⅰ.Local:函数内的区域,包括局部变量和参数
Ⅱ.Enclosing:外层嵌套的函数区域,常见的为闭包函数的外层函数
Ⅲ.Global:全局作用域
Ⅳ.Built-in:内建作用域
函数检索变量的先后规则:Local——Enclosing——Global——Built-in
(2)局部变量和全局变量
a.局部变量只能在函数内部被访问,而全局变量可以在整个程序范围内被访问
b.两个不同的函数可以有相同的局部变量且不会相互影响
(3)global和nonlocal关键字
global关键字:用于在函数内对全局变量进行操作
在函数内部使用函数外的变量时若不用global变量声明则会报错
nonlocal关键字:修改嵌套作用域中的变量
当没有使用nomlocal关键字声明变量时
当使用nomlocal关键字声明变量时
8.递归函数和匿名函数
递归函数:一个函数内部调用了函数本身
def fac(num): if num == 1: result = 1 else: result = fac(num-1) * num return result num = int(input('请输入要计算阶乘的数:')) print('%d的阶乘为'%num,fac(num))
结果示例
匿名函数:没有名称的函数,不使用def定义的函数
定义好的一个匿名函数最好用一个变量保存下来,以便后期使用方便
可以将匿名函数作为参数传递
python学习笔记