Python基础(函数)
一、函数的创建和调用
什么是函数
- 函数就是执行特定任务和以完成特定功能的一段代码
为什么需要函数
- 复用代码
- 隐藏实现细节
- 提高可维护性
- 提高可读性便于调试
函数的创建
def 函数名([输入参数]):
函数体
[return xxx]
def calc(a,b):
c=a+b
return c
函数的调用
def calc(a,b):
c=a+b
return c
result=calc(10,20)
print(result)
输出:30
执行步骤:
- 跳到定义函数的函数体内
- 执行函数体
- 跳到函数的调用处
- 继续执行下一条语句
二、函数的参数传递
位置实参
- 根据形参对应的位置进行实参传递
print('-----函数的创建-----')
def calc(a,b): #a,b称为形式参数,形参的位置在函数的定义处
c=a+b
return c
result=calc(10,20) #10,20是实际参数的值,称为实参,实参的位置在函数的调用处
print(result)
a占第一个位置,b占第二个位置
则调用处第一个位置的10 传递给a,调用处第二个位置的传递给
关键字实参
- 根据形参名称进行实参传递
re=calc(b=21,a=11)
print(re)
输出:32
函数参数传递的内存分析
def fun(arg1,arg2):
print('arg1',arg1)
print('arg2',arg2)
arg1=100
arg2.append(10)
print('arg1',arg1)
print('arg2',arg2)
n1 = 11
n2 = [22,33,32]
print('n1',n1)
print('n2',n2)
fun(n1,n2)
print('n1',n1)
print('n2',n2)
输出:
n1 11
n2 [22, 33, 32]
arg1 11
arg2 [22, 33, 32]
arg1 100
arg2 [22, 33, 32, 10]
n1 11
n2 [22, 33, 32, 10]
如果是不可变对象,在函数体的修改不会影响实参的值,arg1的修改为100,不会影响n1的值
如果是可变对象,在函数体的修改会影响到实参的值,arg1的修改,append(10),会影响到n2的值
三、函数的返回值
函数返回多个值时,结果为元祖
def func