函数是带名字的代码块,用于完成具体的工作,无需反复编写完成该工作的代码。之前我们接触过print函数,数据类型转换中的int函数、str函数,还有列表中的append函数、pop函数、remove函数,以及字典中的keys函数、values函数等等,其实在正式学习函数之前,我们已经接触了函数,只不过没有接触过自定义函数,接触的都是Python自带的内置函数。
我们在使用自定义函数之前要,先声明一个自定义函数,让Python知道除了它自己的内置函数外,我们又自己定义了一个函数,其最简单语法格式:
我们定义一个输出'hello'的函数,其作用就像现实生活中的打招呼,编写程序如下所示:
调用自定义函数的方式方法有很多,根据自定义函数所在的位置,有不同的调用方式,在这里先介绍最简单的一种,自定义函数和调用位置在同一个文件中,编写程序如下所示:
我们试想下在打招呼的过程中,可能需要加上人名,比如:hello,张三。对此我们需要在自定义函数最简单的声明语法格式上再丰富一下,如下所示:
下面我们通过参数,将'张三'这个文本内容传递给函数,让函数能够接收到这个文本内容,并执行函数功能,编写程序如下所示:
我们通过输出结果发现是符合我们设想的。
我们成功将'张三'这个文本内容传递给print_hello函数后,这里用到了我们这块的知识点,就是实参和形参。
在print_hello函数的定义中,我们定义了一个变量username,如果没有调用这个函数,username变量也只是声明了,但并没有进行赋值,只是起了一个名字而已,这样的变量我们在函数当中叫做形参。在函数的调用中,我们编写代码print_hello('张三'),其中'张三'我们可以认为是一个字符串类型的变量,这个变量是被'张三'这个文本内容赋值的,这样的变量我们在函数当中叫做实参。
函数之间的信息传递就是通过实参变量的值传递给形参变量,让形参变量在函数被调用的过程中被赋值,然后利用形参变量完成函数的相关功能,最简单的信息传递示意图如下所示:
循环语句的作用也是用于完成具体的工作,无需反复编写完成该工作的代码块。那么循环语句与函数有什么区别呢?
循环语句更侧重于次数,程序需要通过循环多少次、循环终止条件、无限循环等才能达到预想效果,因为执行的代码块相同,所以通过循环语句无须反复编写代码块。
而函数更侧重于功能实现,比如程序要实现人员名单查询的功能,可以自定义声明一个查询功能的函数,程序当中需要查询人员名单的时候,直接调用即可,需要在哪里查询就在哪里调用,同样对于相同的代码块,无须重复编写,即可调用运行。