1.函数基础
1.函数的定义
定义方法:
def function_name(params):
block
return expression(表达式)/value
def 关键字表示定义一个函数
function_name 函数名,和变量名的命名要求相同,以字母和_开头,可以包含字母、数字和_
params 表示参数,可以是零个,一个 或者多个参数,函数参数不用指定参数类型,因为python中的变量都是弱类型参数,python会根据传入的值自动来维护
return 语句是可选的,可以出现在函数中的任何地方,没有的时候会返回一个None值 ,return后面没有接表达式的话也会返回一个None 值,并且返回值可以是多个
2.python中函数的参数详解
参数详解:
1.必备参数:参数没有默认值
2.默认参数:参数有默认值,调用函数是可以传参也可以不传参,不传参时,参数是默认值
3.关键字参数:传参时参数名和参数值可以改变传参的顺序,
4.不定长参数: 可在定义时定义,也可在传入时传入
定义方法: def function_name(*args,**kwargs):
*args 代表元组
**kwargs 代表字典
2.常见的内置函数
常见的内置函数:
查看内置函数:
print(dir(__builtins__))
常见函数
len 求长度
min 求最小值
max 求最大值
sorted 排序
reversed 反向
sum 求和
进制转换函数:
bin() 转换为二进制
oct() 转换为八进制
hex() 转换为十六进制
ord() 将字符转换成对应的ASCII码值
chr() 将ASCII码值转换成对应的字符
补充:
1.enumerate() 返回一个可以枚举的对象
2.eval() 1.将字符串str当成有效的表达式来求值并返回计算结果 2.取出字符串中内容
3.exec() 执行字符串或complie方法编译过的字符串,没有返回值
4.filter() 过滤器
5.map 对于参数iterable中的每个元素都应用fuction函数,并将结果作为列表返回
6.zip 将对象逐一配对
3.lambda匿名函数
没有函数名
例子 g = lambda x:x+1 (x 为参数, x+1 为返回值)
lambda 简化了函数定义的书写形式,使代码更为简洁。
4.函数内变量的作用域
变量的作用域与其定义的方式有关:
如果变量在函数内部定义,则变量的作用域在函数内部
如果变量在具有全局变量的作用域定义,则变量的作用域是全局
全局变量可以在函数内部访问,但是不能改变
定义在函数内部的变量称为局部变量
如果在函数内部想修改全局变量,可以用 global 来修饰变量
nonlocal 关键字用来在函数或其他作用域中使用外层(非全局)变量 (python3中新增关键字)
5.内嵌函数和闭包
内嵌函数: 在函数内部定义函数,只能在函数内部调用
def fun():
def foo():
pass
pass
闭包:一个闭包就是你调用了一个函数A,这个函数A返回了一个函数B给你。
这个返回的函数B就叫做闭包。你在调用函数A的时候传递的参数就是自由变量
def func(obj):
def wrapper(*args, **kwargs):
result = obj
return result
return wrapper
6.递归函数
函数调用自己本身