pyhon 函数分类及用法

python函数
函数
函数定义
函数调用
函数分类
全局变量,局部变量
函数的参数
位置参数
默认值参数
可变参数
关键字参数
命名关键字参数
函数递归
匿名函数
偏函数
函数
什么是函数:
函数是功能 过程 结果(是实现某一功能或者某些功能的命令的集合)

函数定义
def 函数名称(参数):
#缩进 函数体

1.定义函数的时候,需要确定函数的名称和参数个数

2.如果有必要的话,需要先对参数的类型做检查

3.函数的内部可以用return返回函数的结果

4.函数可以返回多个值,但是返回的结果实则是元组tuple

函数调用
格式:
print(函数名称(参数))
函数名称实则是指向函数对象的引用,可以把函数名称赋值给一个变量。

函数分类
有没有参数:

有参函数 ,无参函数

有没有返回值:

有返回值函数 ,无返回值函数

定义者分类:

系统 , 第三方

全局变量,局部变量
全局变量:
在模块内、在所有函数外面、在class外面
局部变量:
在函数内的方法内
1.局部变量的作用域:只在函数内有效
2.函数的内部是可以访问全局变量,但是不能改变全局变量
(在局部变量内可用global()来操作全局变量)

函数的参数
位置参数
def show(a):
return a*a

show(a)中a就是位置参数

默认值参数
定义函数的时候,可以给参数加上默认值,调用函数的时候,如果没有给这个参数赋值,也是可以成功调用函数
注意:
1.默认值参数应该写在必选参数的后面
2. 默认值参数可以有多个,变化范围小的参数要写在变化范围大的参数前

可变参数
def word(*str):
sum=0
for i in str:
sum+=i
return sum

li=[2,3]
print(li(num[0],num[1]))
结果为:

li列表的所有元素作为可变参数传递给了word

关键字参数
(用于扩展,使参数3为一盒列表)
格式:
def 函数名 (参数1,参数2,**参数3)
参数3为关键字参数(用于扩展,使参数3为一个列表)

命名关键字参数
函数递归
在函数的内部,可以调用其他函数,函数内部调用自己,就是递归

前提条件:

1.函数自己调用自己
2.有终止条件
//求a的阶乘
def sum(a):
if n==1:
return 1
return n*sum(a-1)
print(fact(3))
结果为:

匿名函数
定义:
lambad 表达式就是一个函数,可以赋值给一个变量,既然是表达式,可以参与运算

lambda_b = lambda x : x if x % 2 == 0 else x+2
print(lambda_b(6))
print(lambda_b(7))

lambda x: x** 2 这个匿名函数的形参是x,那么可以找个变量存起来,在调用这个变量的时候传递的参数就是实参,表达式 x if x % 2 == 0 else x+2的值就是这个函数的返回值。

偏函数
调用函数的时候,需要把函数中的参数设定为一个固定的一个值的时候
(引用functools模块)

partial (函数的名称,参数=固定值)

import functools
int2 =functools.partial (int, base=2)
# 把 int 的转换设为二进制了,这里 base 是 int 函数表示进制的参数。
int2(‘1000000’)