一、函数的定义, 函数名, 函数体以及函数的调⽤
1、我们使⽤def关键字来定义函数, 函数的定义语法:
def 函数名():
函数体
2、函数的调⽤: 使⽤函数名可以调⽤函数, 写法: 函数名(), 这个时候函数的函数体会被执⾏
二、函数的返回
执⾏完函数之后. 我们可以使⽤return来返回结果。
- 函数中遇到return 此函数结束 不再继续
def func(): print(‘第一行’) return print(‘第二行’)
调用func()后,会打印出:第一行,下面的第二行不会打印,应为程序执行时,从上到下,遇到了return,所以会停止,不再执行下面的代码。
2. 给函数的调⽤者⼀个访问结果
现在有两个数字,比较大小后,取出较大的值。这时,要是在函数里面比较的,结果怎么通知调用这个函数的人呢。这个要求,return可以满足,代码证明:
def func(): a = 2 b = 3 c = 0 if a > b: c = a else: c = b return c
这样就可以把较大的值返回给调用的人了。
return 还可以一次性返回多个值,接受者以元组的形式接收。
def func(): return 1, 'a', [1, 2] print(func()) 结果: (1, 'a', [1, 2])
总结一下return的作用:
1)遇到return. 此函数结束, 函数后⾯的代码将不会再被执⾏
2)return 返回值
关于返回值:
如果return后面什么都不写 或者 ⼲脆函数就没有return .那么返回的就是None
如果return后⾯写了⼀个值. 则调⽤者可以接收到⼀个值
如果return后⾯写了多个值, 则调⽤者会接收到⼀个tuple, 调⽤者可以直接解构成多个变量
三、 函数的参数
参数, 函数在调⽤的时候指定具体的⼀个变量的值. 就是参数. 语法:
def 函数名(参数列表):
函数体
上面有个比较大小的函数,现在修改一下,在调用的时候,给两个数,然后比较大小后,再返回比较大的一个。
def funca(a,b): c = 0 if a > b: c = a else: c = b return c
func(3,4)#调用的地方
下面介绍三个名词:
a) 形参
写在函数声明位置的变量叫形参.
b) 实参
在函数调⽤的时候给函数传递的值. 叫实参, 实际执⾏的时候给函数传递的信息.
c) 传参
给函数传递信息的时候将实际参数交给形式参数的过程被称为传参.
总结:
比较大小的代码中,调用时,传递的3,4就是实参,函数里接收3,4的a,b就是形参。
- 像上面比较大小的函数中,给传递了3,4两个参数,这种叫做位置参数,就是按照形参的位置一一对应的给值。
- 接下来,介绍第二种实参,叫做关键字参数。
def funca(a,b): c = 0 if a > b: c = a else: c = b return c
func(3,b = 4)#调用的地方
这里的b = 4的方式,就是关键字参数,这里要注意一点,关键字参数,要放到后面,如果放在了前面,代码会报红,读者可以尝试一下。还有下面的一种写法:
func(b = 3,a = 4)#调用的地方
这样传参有个好处,不用记住形参每个位置,应该传递的值是什么。只要,把每个参数都按照这样的方式,传递了全部参数,就可以了。
注意: 在使⽤混合参数的时候, 关键字参数必须在位置参数后⾯
综上: 在实参的⾓度来看. 分为三种:
a. 位置参数
b. 关键字参数
c. 混合参数, 位置参数必须在关键字参数前⾯
3.形参的角度考虑也有三种,下面先介绍两种
还是上面的比较大小的函数:
def funca(a,b):
.......
小括号里的a,b也叫做位置参数。
还有第二种形参,叫做默认值参数。就是在声明函数时,就把值给形参了。这时在调用时,默认值参数,可以不给值也可以,它会自动是引用,已经给定的默认值。
再修改一下,比较大小的函数,现在要求,随便给定一个数,和8作比较。代码修改后:
def funca(a,b=8):#这里的b就是一个默认值参数,和实参的关键字参数一样,默认值参数也要放到最后面,否则代码报红 c = 0 if a > b: c = a else: c = b return c
func(3)#调用的地方
综上: 在形参的⾓度来看,
1. 位置参数
2. 默认值参数(⼤多数传进来的参数都是⼀样的, ⼀般⽤默认参数)