函数的定义与调用

什么是函数? 执行特定任务用以完成特定功能的一段代码。 为什么需要使用函数? 1)提高代码的复用性 2)隐藏实现细节 3)提高可维护性 4)提高代码可读性(便于维护调试) 函数的创建方式如下图:

python函数的定义与使用(Python学习十一函数的定义与实际使用详解)(1)

python函数的定义与使用(Python学习十一函数的定义与实际使用详解)(2)

# 自定义函数 [a,b称为形式参数,简称形参。形参的位置是在函数的定义处] def calc(a,b): c = a b return c # [10,20称为实际参数的值,简称实参。实参的位置是函数的调用处] result = calc(10,20) print('函数运行结果为:',result)


函数调用的参数传递【位置实参、关键字实参】

位置实参:根据形参对应的位置进行实参传递

python函数的定义与使用(Python学习十一函数的定义与实际使用详解)(3)

关键字实参:根据形参名称进行实参传递 # [=左侧的变量名称称为 关键字参数] result_ = calc(b=10,a=20) print('函数运行结果为:',result_)

python函数的定义与使用(Python学习十一函数的定义与实际使用详解)(4)


函数参数传递的内存分析

python函数的定义与使用(Python学习十一函数的定义与实际使用详解)(5)

# 自定义函数 def fun(arg1,arg2): print('参数1:','arg1',arg1,'\t','参数2:','arg2',arg2) arg1 = 100 arg2.append(10) print('参数1:','arg1',arg1,'\t','参数2:','arg2',arg2) # return # 如果函数参数是不可变对象,在函数中的操作不会影响实际参数的值。如:arg1值修改为100,实际参数值n1没有发生改变; # 如果函数参数是可变对象,在函数中的操作会影响实际参数的值。如:arg2值.append(10),实际参数值n2发生改变; n1 = 11 n2 = [22,33,44] 初始实际参数值: n1 11 n2 [22, 33, 44] print('初始实际参数值:','n1',n1,'\t','n2',n2) # 函数调用 [位置传参;arg1,arg2:函数定义的形参;n1,n2:函数调用的实参;(实参名称与形参名称可以不一致)] fun(n1,n2) 调用函数后实际参数值: n1 11 n2 [22, 33, 44, 10] print('调用函数后实际参数值:','n1',n1,'\t','n2',n2)


函数的返回值

函数的返回值 (1)函数没有返回值:【函数执行完毕后,不需要给调用处提供数据】 return可以省略不写 (2)函数有返回值:【如果只有一个值,直接返回原数据类型;如果有多个值,返回的结果为元组】

python函数的定义与使用(Python学习十一函数的定义与实际使用详解)(6)

# 自定义函数 def fun(num): odd = [] # 存奇数 even = [] # 存偶数 for i in num: if i%2: odd.append(i) else: even.append(i) return odd,even # 函数的调用 lst = [10,29,34,23,56,42,73] # 调用函数后的返回值: ([29, 23, 73], [10, 34, 56, 42]) print('调用函数后的返回值:',fun(lst))


函数如何定义参数(函数定义默认值参数)

函数定义时,给形参设置默认值,只有与默认值不符合时才需要传递实参 # 自定义函数 b=10称为默认值参数 def fun(a,b=10): print('函数调用后输出结果:',a,b) # 函数的调用 fun(100) fun(20,30)

python函数的定义与使用(Python学习十一函数的定义与实际使用详解)(7)

,