第五章_函数与文件
函数
模块化设计
概念
-
两个基本要求
紧耦合
- 功能块内部关系紧密
松耦合
def 函数名(params参数列表):<缩进>”””<缩进>函数文档注释,便于help()函数调用查阅<缩进>”””<缩进>block代码块<缩进>return expression/value返回表达式/值
注意
-
例子-
def add(a,b=0): #定义一个加法的函数。有两个变量,其中第二个变量制定了默认值为0,当函数调用时不指定b的参数则以0代入 “”” 说明:此函数主要是计算两个数的加法。当给的两个变量同时是数值或者元组、列表、字符串,但是字典和集合不可以,因为字典和集合没有“+”运算。 1、此函数有两个变量,当仅输入一个变量时,第二个变量默认为0; 2、当输入两个变量时,将是此两个变量的“+”运算。 “”” c = a + b return c add(2,3)
函数中的变量
局部变量
-
全局变量
定义
- 全局变量指在函数之外定义的变量,在程序的执行全过程都有效。如果我们在函数之中定义需要通过保留字global
函数中定义全局变量
函数内和函数外即使有同名的变量,函数内的那个同名变量如果没用global声明,也只能算作函数的局部变量
Lambda匿名函数(行内函数)
用途-
①只是一个表达式,函数体相对简单
- ②单行函数,使用Lambda可省略定义函数过程,更精简
-
格式-
-
例子-
👉定义一个函数g(x,y)=x+yg = lambda x,y : x+y
- print(g(3,4)) 👉 输出7
- filter()过滤函数
- 定义-
- 👉在给定的条件(参数1-函数)上对某域(参数2-序列)进行过滤将序列每个元素作为参数传递给函数进行判断,返回符合条件的所有元素存放到容器中
- 例子-
- 👉#对列表中的个元素是3的倍数进行过滤,并返回符合条件的,但返回的是容器fl = filter(lambda x : x%3 == 0, [1,2,3,4,5,6,7,8,9])
- list(fl)输出[3,6,9]
- 👉#对列表中的个元素是3的倍数进行过滤,并返回符合条件的,但返回的是容器fl = filter(lambda x : x%3 == 0, [1,2,3,4,5,6,7,8,9])
- 定义-
reduce()累计计算函数
- 定义-
- 👉#把函数func()作用在系列Z上累计计算效果类似reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
- 需要调用functools包
- 例子-
- 定义-
特点
- 由单一特定编码的字符组成(有统一的字符编码),可看作存储在磁盘上的长字符串
编码
特点
文本打开
- 代码操作
- 打开文件
- 变量名 = open(‘包括文件名的文件路径’,’rt’,encoding = ‘utf-8’)
- rt表示以文本形式打开,只读
- with open()
- 通过with关键字进行打开可以使得Python自行判断文件状态不需被操作时自动关闭,不必手写.close()进行文件关闭
- 如果只输入文件名,需要把文本文件和代码文件放在同一文件夹中
- 变量名 = open(‘包括文件名的文件路径’,’rt’,encoding = ‘utf-8’)
- 打开文件
- 读取文件
- print(变量名.readline())
- 读取文件
- 关闭文件
- 变量名.close()
- 关闭文件
- 文件通过编码形成——字符串,打印出有含义的字符
- 代码操作
二进制形式打开
统一步骤
- 打开
- 使得当前程序有权操作该文件
- 文件最初处于存储状态,打开后处于占用状态(占用状态时另一个进程无法对该文件进行操作)
- 打开不存在的文件会进行文件创建
- 变量名=open(‘文件路径及文件名’,’打开模式’,encoding = ‘编码格式’)
- 文件路径
- 通过/连接或\,因为\是转义字符
- 或者在引号前+r,直接用\连接即可
- 通过/连接或\,因为\是转义字符
- 打开模式
- r
- 只读模式,文件不存在则返回异常
- w
- 覆盖模式,文件不存在则创建,存在则完全覆盖原文件
- x
- 创建写模式,文件不存在则创建,存在则返回异常
- a
- 追加写模式,文件不存在则创建,存在则在原文件最后追加内容
- b
- 二进制文件模式
- t
- 文本文件模式,默认值
- +
- 与r/w/x/a一同使用,在原功能基础上增加同时读写功能
- r
- 编码格式
- “去哪国用哪国语言”
- 需要统一编码格式才能正确执行
- 否则会出现错误或乱码情况
- 需要统一编码格式才能正确执行
- 代码编码格式转换
- encoding = ‘编码格式’
- 编码格式常见类型
- ANSI
- txt文本的默认格式
- utf-8
- python的默认格式
- gb2312
- 汉字
- ANSI
- “去哪国用哪国语言”
- 文件路径
- 操作
- 文件的读写
- 文件名.write(内容)
- 文件名.read(size)
- 文件的读写
- 关闭
- 打开
读取
- 从文件中读入整个文件内容。
- 存储文件的变量名.read(size = -1)
- size参数
- 可选
- 读取前size长度的字符串或字节流
- size参数
- 存储文件的变量名.read(size = -1)
- 从文件中读取一行内容
- 存储文件的变量名.readline(size = -1)
- 从文件中读取所有行
- 存储文件的变量名.readlines(hint = -1)
- 以每行为元素形成一个列表。
- hint参数
- 可选
- 读取hint行
- 存储文件的变量名.readlines(hint = -1)
- 读取指针
- 文件打开后,文件的读写有一个读取指针,读入内容后读取指针将移动,再次读取的内容将从指针的新位置开始
- 从文件中读入整个文件内容。
- 写入
- 向文件写入一个字符串或字节流
- 存储文件的变量名.write(‘写入内容’)
- 将一个元素为字符串的列表整体写入文件
- 存储文件的变量名.writelines(lines)
- 向文件写入一个字符串或字节流
