其中的一些图片我直接截图视频中的总结
一.文件的相关知识
1.文件的创建
Python 使用 open()
函数创建或打开文件,
语法格式如下所示:
f=open(name,mode,encoding)
-
mode:是一个可选字符串,用于指定打开文件的模式,默认值是
'r'
(以文本模式打开并读取)。可选模式如下:
模式 | 描述 |
---|---|
r | 读取(默认) |
w | 写入,并先截断文件 |
x | 排它性创建,如果文件已存在则失败 |
a | 写入,如果文件存在则在末尾追加 |
b | 二进制模式 |
t | 文本模式(默认) |
+ | 更新磁盘文件(读取并写入) |
-
encoding:用于解码或编码文件的编码的名称。建议为encoding='utf-8';
- name:打开目标文件的字符串(可以包含文件的具体路径)
2.文件的写入
上面我们创建的文件 test.txt 没有任何内容,我们向这个文件中写入一些信息,对于写操作,Python 文件对象提供了两个函数,如下所示:
函数 | 描述 |
---|---|
write(str) | 将字符串写入文件,返回写入字符长度 |
writelines(s) | 向文件写入一个字符串列表 |
我们使用这两个函数向文件中写入一些信息,如下所示:
wf = open('test.txt', 'w', encoding='utf8')
wf.write('shua\n')
wf.writelines(['tom\n', 'Python'])
3.文件的关闭
wf.close()
上面我们使用了 close() 函数进行关闭操作
二.异常,模块,包
1.异常及其捕获方式
""" 异常捕获 """ file_name = "红楼梦1.txt" # 打开一个不存在的文件 # 1. 出现异常,执行except中的语句,捕获所有异常 try: f = open(file_name, 'r', encoding='utf-8') except Exception as e: # 如果出现异常,则执行以下语句,而不是停止程序 print(e) f = open(file_name, 'w', encoding='utf-8') # 2. 捕获指定异常 try: 1/0 except ZeroDivisionError as e: print("除数不能是0") print(e) # 3. 捕获指定多个异常 # else和finally可选 try: print(1/1) except (ZeroDivisionError, NameError) as e: print("除数不能是0") print(e) else: print("没有异常执行else语句内容") finally: print("有没有异常都执行finally的内容") f.close()
异常捕获2,---异常的传递性
def readTxt(file_name): f = open(file_name, 'r', encoding='utf-8') for name in f: print(name) file_name = "红楼梦1.txt" # 打开一个不存在的文件 try: readTxt(file_name) except Exception as e: # 如果出现异常,则执行以下语句,而不是停止程序 print(e)
2.python模块
1.什么是模块?
模块就是一个Python代码文件,内含类、函数、变量等,我们可以导入进行使用。
2.语法
[from 模块名] import [模块|类|变量| 函数|*] [as 别名]
3.注意事项:
- from可以省略,直接import即可
- as别名可以省略
- 通过”.”来确定层级关系
- 模块的导入一般写在代码文件的开头位置
4.自定义模块
__all__变量可以控制import * 时哪些功能可以被导入 用法:__all__ = ['fun1','fun2']
例子:__main__
""" 自定义模块 day4_bug.py """ def readTxt(file_name): f = open(file_name, 'r', encoding='utf-8') for name in f: print(name, end='') # 没有main,在调用时执行了 file_name = "红楼梦.txt" readTxt(file_name) # __main__保证在该模块被引用的时候,不执行main中的部分。 # pycharm快捷键:输入 main 可直接跳出 if __name__ == '__main__': if __name__ == '__main__': file_name = "红楼梦1.txt" readTxt(file_name)
3.包
三. 类和对象
1.类的定义
1.类是由哪两部分组成呢?
·类的属性,称之为:成员变量
·类的行为,称之为:成员方法
注意:函数是写在类外的,定义在类内部,我们都称之为方法哦
2.类和成员方法的定义语法 class 类名称:
成员变量
def成员方法(self,参数列表):
成员方法体
对象=类名称()
3. self的作用
.表示类对象本身的意思
· 只有通过self,成员方法才能访问类的成员变量
·self出现在形参列表中,但是不占用参数位置,无需理会
2.面向对象编程
面向对象编程就是,使用对象进行编程。
即,设计类,基于类创建对象,并使用对象来完成具体的工作。
3.一些内置方法
4.私有成员、封装
1.封装的概念 将现实世界事物在类中描述为属性和方法,即为封装。
2.什么是私有成员?为什么需要私有成员?
现实事物有部分属性和行为是不公开对使用者开放的。同样在类中描述
属性和方法的时候也需要达到这个要求,就需要定义私有成员了
3.如何定义私有成员?
成员变量和成员方法的命名均以__作为开头即可
4.私有成员的访问限制?
·类对象无法访问私有成员
·类中的其它成员可以访问私有成员