Chapter4 函数、作用域与抽象
函数是Python中最重要的扩展和重用代码的机制。本章主要知识点:
- 1.函数定义,作用域、本地变量和全局变量
- 2.函数的规范
- 3.递归函数
- 4.模块
- 5.会进行基本的文件操作
4.1 函数与作用域
函数定义
def name of function( list of formal parameters):
body of function
函数被调用时,会执行如下过程:
(1)实参表达式求值,将实参表达式求值结果绑定到形参变量
(2)程序转到函数的第一条语句
(3)执行函数体的代码,直到遇到return语句。return后面表达式的值即为函数值,若return后没有表达式或没有return语句,则函数返回值为None
(4)程序返回函数调用点,继续执行后面的语句。
关键字参数和默认值
将实参绑定到形参有两种方式:
1.位置参数:形参根据位置绑定到实参
2.关键字参数:形参根据名称绑定到实参,即函数调用时写出形参名称
关键词参数经常和默认值参数一起使用,默认值参数是指函数定义指定形参的默认值。比如:
#reverse为默认值参数
def printName(firstName, lastName, reverse=False):
if reverse:
print(lastName + ', ' + firstName)
else:
print(firstName, lastName)
#位置参数
printName('Olga', 'Puchmajerova', False)
#关键字参数
printName(firstName='Olga', lastName='Puchmajerova', reverse=False)
#关键字参数
printName('Olga', lastName='Puchmajerova', reverse=True)
作用域
每个函数都定义了一个命名空间,也称为作用域。
形式参数、实际参数
局部变量、全局变量
4.2 规范
python可以通过三引号之间的注释定义文本字符串,通过文本字符串可以提供函数的规范,使用内置函数help可以访问函数的规范。
函数的规范给函数使用者提供说明,主要包括两方面的约定:
1.函数的形参必须满足的条件,以确保调用函数时传递正确的实参
2.函数实现的功能
函数可以实现程序的分解和抽象,有助于团队中任务的分工。程序员通过规范了解函数的功能,不需要关心实现细节,从而更专注自己的工作内容。
4.3 递归
4.4 全局变量
4.5 模块
模块就是一个包含python定义和语句的.py文件,程序可以通过import语句访问一个模块。Python模块允许我们方便的使用多个文件构建程序,为多人合作编写同一个程序时提供了极大的方便。
4.6 文件
常用的文件操作函数
函数名 | 说明 |
---|---|
open(fn, 'w') | fn是一个表示文件名的字符串。创建一个文件用来写入数据,返回文件句柄。 |
open(fn, 'r') | fn是一个表示文件名的字符串。打开一个已有文件读取数据,返回文件句柄。 |
open(fn, 'a') | fn是一个表示文件名的字符串。打开一个已有文件用来追加数据,返回文件句柄。 |
fh.read() | 返回一个字符串,其中包含与文件句柄fh相关的文件中的内容。 |
fh.readline() | 返回与文件句柄fh相关的文件中的下一行。 |
fh.readlines() | 返回一个列表,列表中的每个元素都是与文件句柄fh相关的文件中的一行。 |
fh.write(s) | 将字符串s写入与文件句柄fh相关的文件末尾。 |
fh.writeLines(S) | S是个字符串序列。将S中的每个元素作为一个单独的行写入与文件句柄fh相关的文件。 |
fh.close() | 关闭与文件句柄fh相关的文件。 |