5.1 函数的基本使用

5.1 函数的基本使用

为什么要使用函数呢?

如果一个软件功能比较强大,相对应的代码也会比较庞大,以目前最大的全球计算机软件提供商微软为例,在Windows 2000的研发过程中,微软投入了300多名的软件工程师和系统测试人员,合计写出约5000万行代码。可以想象一下,如果把所有的代码都放在一个主函数中,代码编写就无法分工,编写任务基本也不可能完成,同时也会产生代码过长,容易出错,可读性差等问题。

因此必须有一种机制,能将代码划分为若干模块,每一模块都可相对独立地实现某一功能,这就是函数。

另外,有部分功能经常要使用,但是不可能每次使用的时候都把相应的功能代码全部写一遍,这样会造成代码的大量冗余。解决的方法就是将这样的功能封装起来,每次需要使用这些功能时,通过调用函数就可实现。

有一部分经常使用的函数,由系统直接封装,用户不需重复定义就可直接调用,这就是内置函数,如我们前面学到的函数print()、len()等,都是Python的内置函数。

有一些是用户自己定义的函数,不同功能的函数之间通过一定的方式实现通信,这就需要为自定义函数设计参数及返回值。

总体来说,函数的两个主要目的是:降低编程难度,实现代码复用。

函数是一种功能抽象,复用它可以将一个复杂的大问题分解成一系列简单的小问题,同时,小问题还可以继续划分成更小的问题,是一种分而治之的思想应用。当每个小问题都细化到足够简单时,为每个小问题编写程序,并进行函数封装,通过小问题的解决使整个大问题得到解决。这就是一种自顶向下的程序设计思想。

【案例5-1】 请编写程序完成公式的计算:,其中m、n的值由键盘输入。

案例分析:

从公式中,我们可以看到要反复求各数的阶乘,如果直接用代码编写,需要将求阶乘的代码写3次,这必然会造成大量的代码冗余,因此我们可以将求阶乘的功能代码封装起来,得到一个函数,每次要求阶乘时,只需要修改参数并调用函数即可。