1.函数的创建与调用
什么是函数?
执行任何完成特定功能的一段代码
为什么需要函数?
- 复用代码
- 隐藏实现细节
- 提高可维护性
- 提高可读性便于调试
函数的创建
def 函数名([输入函数]):
函数体
[return xxx]
函数的调用
函数名([实际参数])
2.函数的参数传递
形参的位置在函数的定义处,实参的位置在函数的调用处
- 位置实参:根据形参对应的位置进行实参传递
- 关键字实参:根据形参名称进行实参传递
3.函数的返回值
- 如果函数没有返回值,即函数执行完毕之后,不需要给调用处提供数据,return可以省略不写
- 函数的返回值,如果是一个,直接返回类型
- 函数返回多个值时,结果为元组
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,44,53,55]
print(fun(lst))
#输出为([29, 23, 53, 55], [10, 34, 44])
4.函数的参数定义



关于实参
def fun(a,b,c): #a,b,c在函数的定义处,所以是形式参数
print('a=',a)
print('b=',b)
print('c=',c)
fun(10,20,30) #函数调用时的参数传递,所以是位置传参
lst = [10,20,30]
fun(*lst) #在函数调用时,将列表中的每个元素都转换成位置实参传入
fun(a=100,b=300,c=200) #函数的调用,所以是关键字实参
dic={'a':111,'b':222,'c':333}
fun(**dic) #在函数调用时,将字典中的每个键值对都转换成关键字实参传入
关于形参
def fun1(a,b=10): #b是在函数的定义处,所以b是形参,且进行了赋值,所以是默认值形参
print('a=',a)
print('b=',b)
def fun2(*args1): #个数可变的位置形参
print(args1)
def fun3(**args2): #个数可变的关键字形参
print(args2)
fun2(10,20,30,40)
fun3(a=10,b=20,c=30,d=40)
def fun4(a,b,*,c,d): #从*之后的参数,在函数调用时,只能采用关键字参数传递
print('a=',a)
print('b=',b)
print('c=',c)
print('d=',d)
#调用fun4函数
fun4(10,20,30,40) #位置实参
fun4(a=10,b=20,c=30,d=40) #关键字实参
fun4(10,20,c=30,d=40) #前两个参数采用位置实参传递,而c和d采用的是关键字实参传递
5.变量的作用域

def fun():
global age #函数内部定义的变量,局部变量使用global声明,变成全局变量
age = 20
print(age)
fun()
print(age)#要调用子函数,才能运行
6.递归函数

#计算阶乘
def fac(n):
if n==1:
return 1
else:
return n*fac(n-1)
print(fac(6))
7.斐波那契数列
#计算斐波那契数列
def fib(n):
if n==1:
return 1
elif n==2:
return 1
else:
return fib(n-1)+fib(n-2)
print(fib(6))
文章介绍了Python中函数的基本概念,包括函数的创建与调用、参数传递(位置实参、关键字实参)、返回值(单个与多个)、参数定义(位置参数、默认值参数、可变参数)以及变量的作用域。还探讨了递归函数的应用,如计算阶乘,以及使用斐波那契数列作为示例展示了递归的实现。

被折叠的 条评论
为什么被折叠?



