友情提示:同学您好,此页面仅供预览,在此页面学习不会被统计哦! 请进入学习空间后选择课程学习。


8.1  匿名函数  

1、lambda函数的定义


2、lambda函数的应用场合


8.2  递归调用函数

1、递归的概念


在面向过程的程序设计模式中,函数是编程的重要工具。一个函数既可以调用其它函数,也可以被其他函数调用。函数之间通过这种调用和被调用关联在一起,从而实现程序的既定目标。

递归调用:函数调用中,存在着一种特殊的调用关系,即一个函数在其执行过程中可以调用自身,这种情况称为递归调用。递归调用分为两种情况:直接递归和间接递归。直接递归是在函数内部直接调用自己;间接递归是函数通过其他函数间接地调用自己。

递归函数:在函数的定义中,可以通过直接的方式或间接的方式调用自身,这样的函数,称为递归调用函数,简称递归函数。在递归函数执行过程中,就将发生递归调用。



2、递归的使用条件

在程序中使用递归,往往是为了解决一个复杂的问题,且该问题具有递归关系:①必须知道该问题在最简单情况下的解;②其他情况下的解可通过递归调用简单解生成。


3、递归函数的工作原理


4、递归函数的设计

8.3  内置函数


8.4  高阶函数

1、高阶函数map



2、高阶函数sorted


8.5  模块化编程

程序设计方法有两种:面向对象的方法和面向过程的方法。

面向对象的程序设计:适合处理大规模应用程序的开发。面向对象的核心是对象。数据及对数据的操作封装在一起组成了对象,同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过接口与外界发生关系,对象与对象之间通过消息进行通信。

面向过程的程序设计:也称结构化程序设计,适合处理规模不是很大的程序。开发和维护一个程序的有效方法是采用“分治”的思想,通过自顶向下、逐步求精将其划分为若干个程序模块,每个模块用来实现一个特定的功能。开发中,函数是实现模块构建的重要工具,通过定义函数的形式将功能封装,可以实现程序设计的模块化。

面向过程的程序设计中,合理地应用函数可以把程序划分成不同的功能,分别用不同的函数和模块实现,通过函数的调用和模块的导入实现整体功能。函数的应用,可以使程序代码扁平化,逻辑更加清晰,便于代码的编写、阅读、调试和维护。

模块化编程的相关概念:

1、模块

模块(Module):模块于在逻辑上组织代码段,本质上是一个Python程序文件,以.py作为文件扩展名。任何一个包含Python定义和语句的.py文件都是一个模块。

模块能定义函数、类、变量,也能包含可执行代码。Python主要包括三类模块:内置模块(标准库)、第三方模块、自定义模块。

前面讨论了模块的导入方法包括(需要时可用as 指定模块的别名):

import <模块名> [as 模块别名]

from <模块名> import <函数名1,函数名2,...,函数名n>

from <模块名> import *

下面介绍自定义模块的导入方法。

当程序与自定义模块位于相同目录时,导入方法如下:

import <模块名> [as 模块别名]

当程序与自定义模块位于不同目录时,导入方法如下:

from <目录名> import <模块名>  [as 模块别名]

2、包和库


8.6  程序举例

示例1:验证哥德巴赫猜想


示例2:汉诺塔问题