python之路 第四章 函数入门——函数的介绍、定义、参数、返回值、None类型、函数说明文档、函数的嵌套、局部变量与全局变量

目录

第四章 函数入门

01 函数的介绍

02 函数的定义

03 函数的参数

04 函数的返回值

定义语法

None类型

05 函数说明文档

06 函数的嵌套调用

07 变量的作用域

局部变量

 全局变量

综合案例


第四章 函数入门

01 函数的介绍

         函数究竟是什么呢?

         在数学中,我们通常称能够表达一类数学模型的某项表达式为函数,而在计算机中,我们将一种已经组织好的,可重复使用的,用来实现特定功能的代码段定义为函数。

         接下来我们看看,我们自己写一遍,代码和运用已有的函数有什么区别

python之路 第四章 函数入门——函数的介绍、定义、参数、返回值、None类型、函数说明文档、函数的嵌套、局部变量与全局变量_第1张图片 纯用代码 python之路 第四章 函数入门——函数的介绍、定义、参数、返回值、None类型、函数说明文档、函数的嵌套、局部变量与全局变量_第2张图片 利用函数

         所以我们心中的一个问题就可以得到答案了,究竟我们到底为什么要去学习函数呢?

         可以让我们得到一个针对特定需求、可供重复利用的代码段,从而提高程序的复用性,减少重复性代码,提高开发效率。


02 函数的定义

函数的定义语法一般为:

                def  函数名(传入参数):

                        函数体

                        return  返回值

         函数定义之后实际上是不会运行的,就好比我们只生产了机器设备但并没有通电运行,接下来我们就要对函数进行调用,通上这个函数的“电源”。

函数的调用为

函数名(参数)

python之路 第四章 函数入门——函数的介绍、定义、参数、返回值、None类型、函数说明文档、函数的嵌套、局部变量与全局变量_第3张图片

 #注意:1.参数如果我们不需要的话,可以对其省略。

               2.返回值如果我们不需要的话,可以对其省略。

               3.函数必须先定义之后才能调用。


03 函数的参数

         传入参数到目前为止应该是我们新接触的知识,那么这个功能到底有什么作用呢?

         传入参数的功能是:在函数进行计算时,接受外部调用时提供的数据。

python之路 第四章 函数入门——函数的介绍、定义、参数、返回值、None类型、函数说明文档、函数的嵌套、局部变量与全局变量_第4张图片

          在上述例子中,函数定义中提供的x和y称之为形式参数,即形参。表示函数声明中将要使用2个参数;而在函数调用中提供的5和6则称之为实际参数,即实参。表示函数执行时真正使用的参数值。

         要注意,无论是实参还是形参,在传入时,都需要按照顺序传入数据,并且参数之间应使用逗号分割开来。

         函数的使用是不受限制的,在使用中可以选择不使用参数,也可使用任意个参数。


04 函数的返回值

定义语法

         返回值,举个例子就好像,你让你的朋友帮你买个东西,最后他把东西买回来给了你。

         其中,你的朋友就是函数本身,买的东西就是传入参数,买东西的过程是函数体,然后最后朋友将买回来的东西给你,这就叫返回值。

         正经的说,返回值就是函数在执行完成后返回给调用者的数据结果。

返回值的基本语法是

                def  函数(传入参数):

                        函数体

                        return  返回值

               变量  =  函数(参数)

python之路 第四章 函数入门——函数的介绍、定义、参数、返回值、None类型、函数说明文档、函数的嵌套、局部变量与全局变量_第5张图片

          当return出现,当前层级之后的代码都不再运行。

python之路 第四章 函数入门——函数的介绍、定义、参数、返回值、None类型、函数说明文档、函数的嵌套、局部变量与全局变量_第6张图片

None类型

         在函数的定义章节,我们曾经说过,返回值可以进行省略,那么如果函数没有使用return语句返回数据,函数有没有返回值?

         这个问题很简单,无论到底有没有return语句,函数均有返回值。

         实际上返回值不是不存在,而是替代了。这依赖于python中一个特殊的字面量——None,其类型是:。没有返回值的函数,实际上就是返回了None这个字面量。

         None表示空的、没有实际意义的意思。函数返回的None就表示这个函数没有返回什么有意义的内容,也就是返回到了空的意思。

python之路 第四章 函数入门——函数的介绍、定义、参数、返回值、None类型、函数说明文档、函数的嵌套、局部变量与全局变量_第7张图片

 那么None都能用在哪些场景呢?

1.用在函数无返回值上

2.用在if判断上

         在if判断中,None等同于假False

         一般用于在函数中主动返回None,配合if判断做相关处理

3.用在声明无内容的变量上

         需要定义变量,但暂时不需要变量有具体值,就可以用来None代替。


05 函数说明文档

        函数是纯代码语言,想要理解其含义,就需要一行一行的去阅读理解代码,效率就会比较低。

         前面学过,我们可以给代码中加入注释来对部分代码进行解释说明。那么同样的,我们也可以给函数中添加说明文档,辅助理解函数的作用。

基本语法如下:

                  def  func(x, y)

                          """

                          函数说明

                          param  x:对形参x的说明

                          param  y:对形参y的说明

                          return:返回值的说明

                          """

         通过多行注释的形式,对函数进行说明解释。但注意,内容应写在函数体之前。

python之路 第四章 函数入门——函数的介绍、定义、参数、返回值、None类型、函数说明文档、函数的嵌套、局部变量与全局变量_第8张图片

 小技巧:在某些软件(如pycharm)中,通过鼠标悬停在函数名上,可以查看函数的说明文档。


06 函数的嵌套调用

         所谓函数的嵌套,就是指一个函数里面有调用了另一个函数。

         并且要知悉,如果函数a中调用了另一个函数b,那么函数a执行到函数b时会先把函数b中的任务都执行完成后才会回到上次函数a所执行的位置。

python之路 第四章 函数入门——函数的介绍、定义、参数、返回值、None类型、函数说明文档、函数的嵌套、局部变量与全局变量_第9张图片


07 变量的作用域

         变量作用域指的是变量作用的范围,即变量在哪里可用?在哪里不可用?主要分为两类:局部变量和全局变量。

局部变量

         所谓局部变量指的是定义在函数体内部的变量,即只在函数体内部生效,在函数外部访问则立即报错。

其作用是:在函数体内部临时保存数据,即当函数调用完成后,则销毁局部变量。

python之路 第四章 函数入门——函数的介绍、定义、参数、返回值、None类型、函数说明文档、函数的嵌套、局部变量与全局变量_第10张图片

 全局变量

         所谓全局变量,只是在函数体内、外部都能生效的变量。

python之路 第四章 函数入门——函数的介绍、定义、参数、返回值、None类型、函数说明文档、函数的嵌套、局部变量与全局变量_第11张图片

          由上述演示可知,全局变量定义后即使在函数内部再次设置也不会发生改变,那么究竟怎么做才能在函数中改变全局变量呢?

         这是我们就需要引入一个概念叫做global关键字,用global关键字可以在函数内部声明变量为全局变量。

python之路 第四章 函数入门——函数的介绍、定义、参数、返回值、None类型、函数说明文档、函数的嵌套、局部变量与全局变量_第12张图片


综合案例

ATM程序实现

money = 5000000
name = None
name = input("尊敬的顾客您好,请输入您的姓名:")
#余额查询界面
def query(show_head):
    if show_head:
        print("--------------查询余额--------------")
    print(f"尊敬的{name}您好,您账户的余额为{money}")
#定义存款函数
def saving(num):
    print("--------------存款界面--------------")
    global money
    money += num
    print(f"尊敬的{name}您好,恭喜您存款{num}元成功")
    query(False)
#定义取款函数
def outing(num):
    print("--------------取款界面--------------")
    global money
    money -=num
    print (f"尊敬的{name}您好,恭喜您取款{num}元成功")
    query(False)
#定义主菜单函数
def main():
    print("--------------主菜单界面--------------")
    print(f"尊敬的{name}您好,欢迎来到黑马银行ATM")
    print("查询余额请按\t\t[1]")
    print("存入金额请按\t\t[2]")
    print("取出金额请按\t\t[3]")
    print("退出账户请按\t[任意键]")
    return input("请您选择接下来要进行的操作")
#设置无限循环,确保程序不退出
while True:
    keyboard_input = main()
    if keyboard_input == "1":
        query(True)
        continue
    elif keyboard_input == "2":
        saving(int(input("请输入您需要存入的金额")))
        continue
    elif keyboard_input == "3":
        outing(int(input("请输入您需要取出的金额")))
        continue
    else:
        break

你可能感兴趣的:(python之路,python,开发语言,pycharm)