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相关的文件。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352

推荐阅读更多精彩内容

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