0 函数大体格式
def <函数名> (占位参数,零个or多个): #形参
<函数体>
return <返回值> #可返回一个或多个结果,例:return a,b,c ;但调用的时候要有相对于的接收;也可以不使用return
1 参数的传递:位置传递 and 名称传递
例:
def fact (n, m==1):
a=n/m
return a
fact(10,2) #位置传递
fact(m=5,n=10) #名称传递
2 参数分类
可选参数:
def fact (n, m==1): #m为可选参数,如果调用函数的时候不传递m,则默认为1;若调用,则按调用的来
a=n/m
return a
可变数量参数:
def fact (n, *b): # *b为可变数量参数,可传递多个值,例:sum(1,2,3....) 函数
for i in b:
n*=i
return n
3 变量分类:
局部变量:
函数内部的变量,函数运算结束后,局部变量会被释放;函数在没有被调用时是不会被执行的,所以其内部的变量名字如果和本函数外
的一样(例如函数内部有个A值,函数外也有个A),外部的变量是不会影响函数内部的值的,一个函数会被单独分成一个块来执行,其与外
部的唯一交集就是传入函数的参数和传出函数的值;所以说如果外部有和函数内部名称一样的变量,但其没有被当成参数传递进来的话,其
是互不影响的。
全局变量:
整个程序都可以用的变量;可用global保留字在函数内部使用全局变量:
例:
n,s=10,100
def fact ( n ):
global s # s未传递进函数,但是可以在函数内使用
s *= n
return s
局部变量为组合数据类型,且其为在函数内创建,等同于全局变量:
例:
ls=['f','F']
def fun ( a ):
ls.append(a) #在ls列表内添加a变量,ls可不用传入
print(ls)
4 lambda函数:
简单的,能够在一行内表示的函数
格式:
<函数名> = lambda <参数> : <表达式>
例:
f=lambda x,y : x+y
print( f(10, 15) ) #结果为25
f=lambda :'hello'
print( f() ) #输出 hello