函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
函数的定义:
def 函数名( 参数 ):
函数体
return 返回值
函数的参数:函数可以有参数也可以没有,但是必须保留括号
def 函数名():
函数体
return 返回值
函数定义时可以为某些参数指定默认值,构成可选参数
def 函数名(非可选参数, 可选参数 ): #非可选参数必须放在可选参数之前
函数体
return 返回值
例:
def fact(n, m=1) :
s=1
for i in range(1,n+1)
s*= i
return s//m
m为可选参数,不写时默认为1
>>> fact(10)
3628800
>>> fact(10, 5)
725760
可变参数传递:
def 函数名(参数,*a):
函数体
return 返回值
def f(n,*b):
s=1
for i in range (1,n+1):
s*=i
for item in b:
s*=item
print (s)
f(1,2)
f(1,2,3)
2
6
函数的返回值:函数可以返回0个或者多个结果
def f(n,m=1):
s=1
for i in range(1,n+1):
s*=i
return s//m,n,m
print(f(10,5))
(725760, 10, 5)
全局变量与局部变量:
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
在函数体内 可以用global 声明全局变量
如果一个组合变量在函数体内被真实创建了,那么他就是局部变量,若不是,他可能是全局变量
如果一个函数内真实创建了一个组合对象那么这个组合对象就是这个函数的局部变量![](https://img-blog.csdnimg.cn/20200607150111834.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzUyNDUw,size_16,color_FFFFFF,t_70)
lambda函数
函数名=lambda 参数:表达式
>>> f=lambda x,y:x+y
>>> f(10,15)
25