一、函数的返回值
通过return 来指定函数的返回值。返回值可以直接使用,也可以使用一个变量来接收函数返回值的结果。
return 后可以跟任意的对象(数值,列表,表达式......),甚至可以是一个函数。
例如:任意数求和
再如:return 另一个函数
如果仅仅写一个return 或者不写return则相当于 return None;在函数中,return后面的代码都不会执行,即return一旦执行,函数结束。
例如:
二、文档字符串
help()函数,可以查询python函数中的用法,
语法:help(函数对象),例如:help(print)
例如:为函数添加文档字符串,其中__annotations__是函数的保留属性,保存的是函数声明中的注释内容,比如我们使用的对参数"num1","num2"和返回值的建议类型;
三、函数作用域
作用域指的是变量生效的区域,在Python中有2种作用域:
1、全局作用域
全局作用域,在程序执行时创建,在程序结束时销毁,所以函数以外的作用域都是全局作用域在全局作用域中定义的变量,都属于全局变量,全局变量可以在程序汇总的任意位置访问。
2、函数作用域
函数作用域在函数调用时创建,在调用结束时销毁,函数每调用一次就会产生一个新函数的作用域,在函数作用域中定义的变量都是局部变量,它只能在函数内部被访问。
作用域:由内往外看。
例如:
再如:
3、如果希望在函数内部修改全局变量,则需要使用golbal关键字来声明变量
例如:
四、命名空间
命名空间实际是一个字典,就是一个专门用来存储变量的字典;locals()用来获取当前作用域的命名空间,如果在全局作用域中调用locals()函数则获取区全局作用域命名空间,如果在函数作用域中调用locals()则获取函数命名空间,返回的就是一个字典值。
例如:
再如:
五、递归
递归式的函数,递归的简单理解就是“自己调用自己”,递归式函数就是在函数中调用函数本身。
递归式解决问题的一种方式
递归式函数的两个条件:
1、基线条件:问题可以被分解成最小的问题,当满足基线条件时,递归不在执行了。
2、递归条件:将问题分解的条件。
例如:求取10的阶乘
再如:求取任意数的任意次幂的值
再如:判断任意字符串是否为回文字符串
六、高级函数
特点:
1、接受一个或者多个函数作为参数;
2、将函数作为返回值;
注:满足任意一个特点就是高级函数。
例如:
注:当我们使用一个函数作为参数时,实际上就是将指定的代码传递进了目标函数。