Python 课程学习笔记(9)函数

第十章 函数

 

 

86. 函数的定义与调用

87. 函数调用的参数传递-位置实参-关键字实参

88. 函数参数传递的内存分析

89. 函数的返回值

90. 函数参数定义-默认值参数

91. 函数参数定义-个数可变的位置形参-个数可变的关键字形参

92. 函数的参数总结

93. 变量的作用域

94. 递归函数

95. 斐波那契数列——本章总结


86. 函数的定义与调用

(1)什么是函数

· 函数就是执行特定任务和用以完成特定功能的一段代码

(2)为什么需要函数

· 复用代码

· 隐藏实现细节

· 提高可维护性

· 提高可读性便于调试

(3)函数的创建  (函数名 自己定 要遵循:字母、数字、下划线)

def 函数名 ( [输入参数])

       函数体

      [return xxx]

print('--------------------86.	函数的定义与调用------------------')
def calc(a,b):   # a,b 称为形式参数,简称形参,形参的位置是在函数的定义处
    c=a+b
    return c

print('(1)位置实参 — 根据形参对应的位置进行实参传递')
result=calc(10,20)    # 10,20 称为实际参数的值,简称实参,实参的位置是函数的调用处
print(result)

print('(2)关键字实参 — 根据形参名称进行实参传递')
res=calc(b=10,a=20)  #左侧的变量的名称称为 关键字参数
print(res)

--------------------86.    函数的定义与调用------------------
(1)位置实参 — 根据形参对应的位置进行实参传递
30
(2)关键字实参 — 根据形参名称进行实参传递
30

87. 函数调用的参数传递-位置实参-关键字实参

(1)位置实参 —— 根据形参对应的位置进行实参传递

(2)关键字实参 —— 根据形参名称进行实参传递

 

88. 函数参数传递的内存分析

(1)形式参数和实际参数的名称可以不相同

(2)在函数调用过程中,进行参数的传递。

  • 如果是不可变对象,在函数体的修改不会影响实参的值
  • 如果是可变对象,在函数体内的修改会影响实参的值

不可变的那种,形参和实参都指向同一块地址,但是你对形参改变值改变的是形参的引用。地址内的值不可变。

可变的那种指向的地址的值可以改变,所以形参可以直接改变里面的值。引用,引用的是变量,不是形参的引用。可变的会改变,不可变的不会改变。

print('--------------------88.	函数参数传递的内存分析------------------')
def fun(arg1,arg2):
    print('arg1=',arg1)
    print('arg2=',arg2)
    arg1=100
    arg2.append(10)
    print('arg1=',arg1)
    print('arg2=',arg2)
#因为未返回任何结果,所以可以省略return,或者直接写个 return 也行
    return

print('函数的调用')
n1=11
n2=[22,33,44]
print('n1=',n1)
print('n2=',n2)

fun(n1,n2)       #位置传参,arg1,arg2是函数定义处的形参,n1,n2是函数调用处的实参。总结,实参名称与形参名称可以不一致
print('n1=',n1)
print('n2=',n2)
#可以理解为def是定义封装了一个公式参与计算,可以改变计算结果,arg1在函数体内赋值,跟最后n1输出没有关系。arg2在函数体内重新计算传递给n2

print('''在函数调用过程中,进行参数的传递。
	如果是不可变对象,在函数体的修改不会影响实参的值 arg1修改为100,不会影响n1值
	如果是可变对象,在函数体内的修改会影响实参的值  arg2修改,影响了n2的值
''')

--------------------88.    函数参数传递的内存分析------------------
函数的调用
n1= 11
n2= [22, 33, 44]
arg1= 11
arg2= [22, 33, 44]
arg1= 100
arg2= [22, 33, 44, 10]
n1= 11
n2= [22, 33, 44, 10]
在函数调用过程中,进行参数的传递。
    如果是不可变对象,在函数体的修改不会影响实参的值 arg1修改为100,不会影响n1值
    如果是可变对象,在函数体内的修改会影响实参的值  arg2修改,影响了n2的值
 

89. 函数的返回值

<
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值