python编程导论_第二课

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相关的文件。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,084评论 17 410
  • 据说一听闻我出世,父亲大人便放了北冥鲲鹏的鸽子,一路游驰而来,老泪纵横,化作大把珍珠,沿途拾得的鱼虾得以成仙。 据...
    安Anita阅读 403评论 2 2
  • 陈桥驿兵变一声炮响,宋太祖赵匡胤闪亮登场。 关于五代的故事,我在《你一定爱看的极简五代史》中已经为大家讲的差不多了...
    丧心病狂刘老湿阅读 9,624评论 21 77
  • 第一题是insert element into BST. 【这题我感觉有见过 但是好像又没见过。。】 有一个很变态...
    98Future阅读 275评论 0 0
  • 河边的苹果树 http://m.ximalaya.com/60475490/sound/37634771
    Chral阅读 217评论 0 0