1、概述
2、具体过程
举例:
def cal(a,b): c=a+b return c result=cal(10,20) print(result) #30二、函数的参数传递
1、参数传递
实参:实际传递参数
形参:函数括号内的形式参数
举例:
def cal(a,b): c=a+b return c result=cal(10,20)#位置实参 a=10,b=20 result=cal(b=20,c=10) #关键字实参传递 a=10,b=20 print(result)
2、内存分析
概述:在函数的调用过程中,进行参数的传递
如果是不可变对象,在函数体的修改不会影响到实参的值 ;如果是可变对象,在函数体的修改会影响到实参的值
举例:
#函数的定义 def fun(arg1,arg2): print('arg1=',arg1) print('arg2=',arg2) arg1=100 #重新赋值为100 arg2.append(10) #追加100 print('arg1=', arg1) print('arg2=', arg2) print('-------------------------------') #函数的调用 n1=11 n2=[22,33,44] print(n1,n2) #结果:11 [22, 33, 44] fun(n1,n2) #将位置传参,agr1,arg2是函数定义的形参,n1,n2是函数调用的实参,总结:形参和实参名称可以不一致 print(n1,n2) #结果:11 [22, 33, 44, 10]三、函数的返回值
结论:
1、如果函数没有返回值,【函数执行完毕后,不需要给调用出提供数据】return可以省略不写
2、函数的返回值如果是1个,直接返回类型
3、函数的返回值如果是多个,返回结果是元组
1、默认参数值
小贴士:可以修改print函数的默认行为,使用end
print('hello',end='t') print('python')
结果:
2、个数可变的位置形参与个数可变的关键字形参
结论:
1、个数可变的位置形参只能有一个,不然程序会报错
2、个数可变的关键字形参只能有一个,不然程序会报错
3、在一个函数中既有个数可变的关键字形参,又有个数可变的位置形参,要求位置形参应在关键字形参之前。即:fun(*args1,**args2)
举例1:
def fun(a,b,c): print('a=',a) print('b=',b) print('c=',c) fun(10,20,30) print("------列表调用多个参数函数---------------------------------------") lst=[11,22,33] fun(*lst) print("-------字典调用多个参数函数--------------------------------------") dic={'a':100,'b':200,'c':30} fun(**dic)
举例2:
在函数参数使用*后,可限定关键字参数传递
举例:
def fun(): global age age=100 print(num) num=100 fun() print(age)
结果如下:
举例:斐波那契数列
def fab(n): if n==1 or n==2: return 1 else: return fab(n-1)+fab(n-2) print(fab(6)) #8
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)