函数
形参只有在被调用时才分配内存单元,调用结束后即刻分配内存单元,只有在函数内部才有效,调用结束后则不能再使用。
实参可以是变量常量、变量、函数或表达式。
定义函数的方法:
def 函数名(形参):
#文档描述:在函数开始写之前,需要写一段注释,用来说明函数是干什么用的。
codeblock
return 返回值
过程:没有返回值的函数。
def calc(x,y):#x,y 为形参
res = x**y
return res
c = calc(x,y)#x,y 为实参
位置参数:与函数形参一一对应,按照参数位置被调用到函数内部。
关键字参数:位置参数必须在关键字参数左边。
默认参数:在函数建立时,已经对定义的形参进行了赋值的参数。
非固定长参数:*args、**kwargs。
def function(x, *args):
#用于演示*args
print(x)
print(*args)
#输入方式一:输入列表
function(1, *[1,2,3])#不定长参数可传多个参数,列表,元组,字典(被当成一个元素)
#*的作用是将数据类型中的元素遍历一遍。
OutPut[1]:1
OutPut[2]:('1','2','3')
#输入方式二:输入字典
function(1, *{"name":"frg"})
OutPut[1]:1
OutPut[2]:('name',)#如果传入的是一个字典,则输出的是字典的键。
#输入方式三:输入多个位置参数,不需要加*
function(1,1,2,3,4,5)
OutPut[1]:1
OutPut[2]:('1','2','3','4','5')
#**kwargs的用法同*args
#混合使用的情况:混合使用的情况在调用函数时可以以任意方式输入而不会报错(*args需要在**kwargs左边)
def test(x,*args,**kwargs):
print(x)
print(*args)
print(**kwargs)
#方式一:输入多组参数
test(1,1,2,3,4,x=1,y=2)
OutPut[1]:1
OutPut[2]:(1,2,3,4)
OutPut[3]:('x':1,'y':2)
#方式二:输入相应数据类型
test(1,*[1,2,3],**{'x':1})
OutPut[1]:1
OutPut[2]:(1,2,3)
OutPut[3]:('x':1)