6.1函数概述(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
|
18页
|
262人阅读
|
25人下载
普通
内容正文:
第6章 函数与模块
1
学习目标/Target
了解函数,能够说出函数的概念以及好处
掌握函数的定义与调用,能够正确地定义并调用函数
掌握函数参数的传递方式,能够通过多种方式给函数的参数传递数据
掌握函数的返回值,能够根据需要使用return语句返回函数处理结果
掌握变量作用域,能够说出全局变量和局部变量的特点
2
学习目标/Target
掌握递归函数的使用,能够运用递归函数解决阶乘的问题
掌握匿名函数的使用,能够运用匿名函数简化简单函数的定义
掌握模块的导入与使用,能够通过不同语句导入模块并使用模块的内容
掌握模块的变量,能够归纳变量__all__和__name__的作用
3
章节概述/ Summary
程序开发过程中,随着需要处理的问题变得越来越难,程序也会变得越来越长。冗长的程序牵扯的情况比较复杂,这不仅增加了阅读和理解的难度,也不利于后期对程序的维护与二次开发。函数和模块的出现便解决这些问题,它们为开发人员提供了丰富的工具和自由度,使得开发各种复杂的程序变得更加简单和高效。本章将详细介绍函数的相关知识,并简要介绍一些关于模块的知识。
4
目录/Contents
01
函数概述
函数的基础知识
函数的参数传递
02
03
函数的返回值
04
5
目录/Contents
05
变量作用域
实例:智能聊天机器人
函数的特殊形式
06
07
模块
08
6
函数概述
6.1
7
6.1 函数概述
通常,处理复杂问题的基本方法是“化繁为简,分而治之”,也就是说将复杂的问题分解成若干个足够小的问题,逐个解决这些小问题,最终达到解决大问题的目的。例如,把大象装进冰箱可分成三步,分别是打开冰箱门、把大象放进去、关上冰箱门。只要逐个解决上述的小问题,便能解决最初设定的大问题。同理,在设计程序时,可以先将程序拆解成若干个小功能,然后逐个实现这些小的功能。程序开发时,这些小功能可以使用函数来封装。
8
6.1 函数概述
函数是一段有组织、可重复使用的、用来实现单一或相关联功能的代码段,通过函数名称进行调用。函数可以看作是一段有名字的子程序,可以在需要的地方使用函数名调用执行。
9
6.1 函数概述
函数是一种功能抽象,它可以实现特定的功能,就像黑箱模型一样。黑箱模型是指所建立的模型只考虑输入与输出,而与过程、机理无关。现实生活中,许多实物应用了黑箱原理,比如洗衣机。使用者只需要了解洗衣机的使用方法,将洗衣粉和水放入洗衣机中,就可以得到洗干净的衣服。同样地,对于函数,外界不需要了解其内部的实现原理,只需要了解函数的输入输出方式即可使用。换言之,调用函数时以不同的参数作为输入,以执行函数后以函数的返回值作为输出。
10
6.1 函数概述
函数大体可以划分为两类,一类是系统内置的函数,它们由Python标准库提供,例如,前面章节中学习的print()、input()、type()、int()等函数;另一类是自定义函数,即用户根据需求定义的具有特定功能的一段代码。自定义函数像一个具有某种特殊功能的容器——将多条语句组成一个有名称的代码段,以实现具体的功能。
11
6.1 函数概述
使用函数的好处主要体现在以下几方面:
提高代码的可读性和可维护性。将功能封装成函数,可以使代码更加模块化,易于理解和修改。
减少代码的重复性。通过函数封装重复的功能,可以避免代码冗余,提高代码的复用性。
提高程序的可扩展性。使用函数可以将不同的功能组合在一起,从而实现更复杂的功能。
提高程序的可靠性。将功能封装成函数可以减少代码中的错误,降低程序出错的风险。
提高程序的性能。通过函数封装重复的功能,可以减少代码执行的时间和空间复杂度,提高程序的性能。
12
函数的基础知识
6.2
13
6.2.1 函数的定义
Python使用def关键字定义函数,基本语法格式如下:
关键字def:标志着函数的开始。
函数名:函数的唯一标识,其命名方式遵循标识符的命名规则。
参数列表:可以有零个、一个或多个参数,多个参数之间使用英文逗号分隔。根据参数的有无,函数分为有参函数和无参函数。
冒号:用于标记函数体的开始。
文档字符串:用于描述函数的功能,可以省略。
函数体:函数每次调用时执行的代码,由一行或多行语句构成。
return语句:标志着函数的结束,用于将函数的处理结果返回给函数调用者。若函数需要返回值,则使用return语句返货,否则return语句可以省略。
def 函数名([参数列表]):
['''文档字符串''']
函数体
[return语句]
14
6.2.1 函数的定义
定义函数时,函数参数列表中的参数是形式参数,简称为“形参”,形参用来接收调用函数时传入函数的参数。注意,形参只会在函数被调用的时候才分配内存空间,一旦调用结束就会即刻释放,因此,形参只有在函数内部有效。
def my_absolute(x):
if x >= 0:
print(x)
else:
print(-x)
定义一个求绝对值的函数,示例如下:
15
6.2.2 函数的调用
函数定义好之后不会立即执行,直到被程序调用时才会生效。调用函数的方式非常简单,一般形式如下:
函数名([参数列表])
例如,调用6.2.1中定义好的my_absolute()函数,代码如下:
my_absolute(-10.0)
以上形式的参数列表中的参数是实际参数,简称为“实参”,它们可以是常量、变量、表达式、函数等,这些实参会根据它们在函数定义中出现的顺序或名称与函数中的形参进行匹配,并在匹配成功后被传递给形参。
16
6.2.2 函数的调用
程序在执行时,若遇到函数调用,会经历以下流程:
程序在函数调用处暂停执行;
将实参传入函数的形参;
执行函数体中的语句;
程序接收函数的返回值并继续执行。若函数没有返回值,则会省略接收返回值的步骤。
17
6.2.2 函数的调用
下面以my_absolute()函数为例,为大家介绍函数的调用过程。
假设定义和调用my_absolute()函数的完整代码如下:
def my_absolute(x):
if x >= 0:
print(x)
else:
print(-x)
my_absolute(-10.0)
print("---程序结束---")
18
$$