Python自学之路之day08-初始函数
一、函数的定义, 函数名, 函数体以及函数的调⽤
我们使⽤def关键字来定义函数, 函数的定义语法:
def 函数(): 函数体
函数名命名规则与变量一样;函数体就是函数被执行之后要执行的代码。
比如,定义一个约会功能函数:
## 定义函数 def yue(): print("拿出手机") print("打开QQ") print("找个好友") print("问她,约不约?") print("ok") ## 函数调用 yue() 执行结果: 拿出手机 打开QQ 找个好友 问她,约不约? ok
二、函数的返回
执行完函数之后. 我们可以使⽤return来返回结果。
1、给函数的调⽤用者一个访问结果
def yue(): print("拿出手机") print("打开QQ") print("找个好友") print("问她,约不约?") print("ok") return "今天约会好开心" # return 返回值 当函数结束的时候. 给调用方一个结果 ret = yue() print(ret) 打印结果: 拿出手机 打开QQ 找个好友 问她,约不约? ok 今天约会好开心
2、函数遇到return就会停止
def yue(): print("拿出手机") print("打开QQ") print("找个好友") print("问她,约不约?") print("ok") return "今天约会好开心" print("我约会了吗?") ret = yue() print(ret) 打印结果: 拿出手机 打开QQ 找个好友 问她,约不约? ok 今天约会好开心
可以看到,return下面语句并未打印出来。
3、函数的返回值可以有多个结果,多个值需要用,隔开 ; 接收的位置. 接收的是元组
def yue(): print("拿出手机") print("打开QQ") print("找个好友") print("问她,约不约?") print("ok") return "周一","周二","周三" a,b,c = yue() ### 解构 print("a:",a) print("b:",b) print("c:",c)
打印结果:
拿出手机
打开QQ
找个好友
问她,约不约?
ok
a: 周一
b: 周二
c: 周三
关于返回值:
如果return什么都不写或者干脆不写return,那么返回的就是None
如果return后面写了一个值,则调用者可以接收一个结果
如果return后面写了多个结果,则调用者可以接收一个tuple,调用者可以直接解构成
三、函数参数
参数, 函数在调用的时候指定具体的⼀一个变量的值,就是参数。 语法:
def 函数名(参数): 函数体
⾸先我们先把代码改一下. 能够实现上面的需求:
def yue(wechat): print("拿出手机") print("打开%s" % wechat) print("找个好友") print("问她,约不约?") print("ok") yue("微信") 打印结果: 拿出手机 打开微信 找个好友 问她,约不约? ok
我们在调用yue函数的时候给wechat一个值. 然后再执行函数体.
关于参数:
1、形参
写在函数声明的位置的变量叫形参。
2、实参
在函数调用的时候给函数传递的值。
3、传参
给函数传递信息的时候将实际参数交给形式参数的过程被称为传参.
def yue(wechat): #wechat 形参 print("拿出手机") print("打开%s" % wechat) print("找个好友") print("问她,约不约?") print("ok") yue("微信") # 微信 实参
函数的参数个数是没有要求的,但是在运行的时候. 形参和实参要匹配. 按照位置把实参赋值给形参。
四、参数的分类
1、实参
1.1 位置参数
def yue(wechat,sex): print("拿出手机") print("打开%s" % wechat) print("找个%s好友" % sex) print("问她,约不约?") print("ok") yue("微信","女性")
打印结果:
拿出手机
打开微信
找个女性好友
问她,约不约?
ok
总结:在访问yue()的时候, 我们按照位置的顺序分别把"微信", "女性",赋值给wechat,sex在传参过程中,系统会默认按照位置把实参赋值到形参.
1.2、关键字参数
位置参数好不好呢? 如果是少量的参数还算OK, 没有问题. 但是如果函数在定义的时候参数非常多怎么办? 程序员必须记住, 我有哪些参数, 而且还有记住每个参数的位置, 否则函数
就不能正常调用了,那则么办呢? python提出了一种叫做关键字参数,我们不需要记住每个参数的位置. 只要记住每个参数的名字就可以了.
def yue(wechat,sex): #wechat 形参 print("拿出手机") print("打开"+wechat) print("找个"+sex+"好友") print("问她,约不约?") print("ok") yue(wechat="微信",sex="女性") # 实参 打印结果: 拿出手机 打开微信 找个女性好友 问她,约不约? ok
1.3、混合参数
可以把上面两种参数混合着使用. 也就是说在调用函数的时候即可以给出位置参数, 也可以指定关键字参数
def yue(wechat,sex): print("拿出手机") print("打开"+wechat) print("找个"+sex+"好友") print("问她,约不约?") print("ok") yue("微信",sex="女性") ## 第一个位置给wechat,后面指定关键字参数
注意:在使用混合参数的时候, 关键字参数必须在位置参数后面
总结:在实参的角度来看,分为三种:
1、位置参数
2、关键字参数
3、混合参数,位置参数必须在关键字参数前面
2、形参
2.1 位置参数. 按照位置来赋值
def yue(wechat,sex): print("拿出手机") print("打开"+wechat) ## 第一个 print("找个"+sex+"好友") ## 第二个 print("问她,约不约?") print("ok")
2.2 默认值参数. 在函数声明的时候, 就可以给出函数参数的默认值. 在调用的时候可以给出具体的值, 也可以不给值, 使用默认值
def yue(wechat,sex="女"): print("拿出手机") print("打开"+wechat) print("找个"+sex+"好友") print("问她,约不约?") print("ok") # 调用,不指定sex yue(wechat="微信") 打印结果: 拿出手机 打开微信 找个女好友 问她,约不约? ok
注意:必须先声明位置参数, 才能声明默认值参数
总结:在形参的角度来看
1、位置参数
2、默认值参数(大多数传进来的参数都是一样的,一般用默认参数)

浙公网安备 33010602011771号