1、
def test(x):
y=x+1
return y
print(test) #这是打印函数在内存中的地址
过程:就是没有返回值的函数
在python中过程也是函数,就算没哟返回值,也会返回个None
def test(x): msg="hello" print(msg,x) return 1,2,3,‘a‘,["steven","bob"],None t=test("jobs") print(t) #打印返回的值,是一个元组:(1, 2, 3, ‘a‘, [‘steven‘, ‘bob‘], None)
总结:返回值个数=0,返回None
返回值=1,返回object
返回值>1,返回tuple
1、形参变量只有在被调用时才分配内存单元,调用结束后释放所分配的内存单元,因此。形参只有在函数内部有效
2、实参可以是常量,变量,表达式,函数等。无论是何种类型的量,在进行函数调用的时候,他们必须有确定的值。
def add(x,y,z): res=x+y+z print(res) add(a,b,c)
x,y,z是形参,a,b,c是实参
3、位置参数和关键字参数
位置参数必须一一对应,缺一行不行多一行也不行
add(1,2,3)
关键字参数必须一一对应,缺一行不行多一行也不行
add(y=3,x=2,z=8)
如果混合的方式,关键字参数必须在位置参数的右侧
add(1,y=3,4) #报错 add(1,3,y=4) #报错 add(1,3,z=4) add(1,3,z=4,y=3) #报错 add(1,z=2,y=9)
4、默认参数
def add(x,y,z=5): res=x+y+z print(res)
5、参数组:**字典,*列表
I、*列表
def test(x,*args): print(x) print(args) print(args[2]) test(3,4,5,6,7,8,9) # 相当于把后面的多个实参当成一个元组传给形参
结果:
def test(x,*args): #print(x) print(args) test(3,[4,5,6,7]) #结果为:([4, 5, 6, 7],) test(3,*[4,5,6,7]) #结果为:(4, 5, 6, 7),和test(3,4,5,6,7)一样
test(3) #结果为()
II、**字典
def test(x,**kwargs): #print(x) print(kwargs) test(1,a=3,b=4,c=5) test(1,a=3,b=4,c=5,c=5) #报错,一个参数不能传两个值
III、混合的用法
def test(x,*args,**kwargs): #print(x) print(args) print(kwargs) test(1,10,11,12,13,a=30,b=40,c=50) test(1,*[10,11,12,13],**{"a":30,"b":40,"c":50}) #写法2
结果:
原文:https://www.cnblogs.com/steven223-z/p/12172911.html