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、默认值参数(大多数传进来的参数都是一样的,一般用默认参数)

posted @ 2019-08-14 17:22  小哥boy  阅读(48)  评论(0)    收藏  举报