目录
一、模块和包管理
1.1.模块和包的定义
- 模块(Module):模块是一个Python文件,以.py结尾,包含了Python对象定义和Python语句。
- 包(Package) : python中的包就是一个包含一个__init__.py 文件的目录(文件夹)。
- 库 : 有可能是模块组成,有可能是包组成
1.2.模块的作用
- 模块让你能够有逻辑地组织你的Python代码段。
- 把相关的功能代码写到到一个模块里能让你的代码更好用,更易懂。
- 模块能定义函数,类和变量,模块里也能包含可执行的代码。
1.3.模块导入方式
import 模块名
import 模块名 as xx(别名)
from 模块名 import 函数方法
from 模块名 import 函数方法 as xx(别名)
from 模块名 import *(所有函数) 不建议,代码的可读性不高
记忆点:除了顶级目录,一层一层的剥开你的心
1.4.包导入方式
from 包名 import 模块名1,模块名2…
from 包名 import 模块名1 as 别名1,模块名2 as 别名2…
from 包名.模块名 import 函数名(变量名)
1.5.模块导入的搜索路径
二、文件操作和路径处理
2.1 文件基本操作
2.1.1 打开和关闭文件
打开文件:open(‘文件名’,‘打开的模式’)
关闭文件:close()
r:读取内容(只读模式)
2.1.2 文件内容读取
read():读取文件中的所有内容
readline():读取文件中的一行内容,不能指定行数去读
readlines():读取文件中的所有行的内容,每一行作为一个元素,放入列表中,可以指定下标去读取指定的行内容
2.1.3文件的打开方式
r:读取内容(只读模式),文件不存在会报错
w:以写入的方式打卡文件(文件不存在,创建一个新的文件,文件存在,清空原来的内容,从新写入)
a:以写入的方式打开文件(文件不存在,创建一个新的文件,文件存在,在原内容尾部,追加写入)
2.1.4文件内容写入
write:写入数据(内容必须是字符串)
【列表怎么写入,怎么读取】:
writelines:写入多条数据(内容是可迭代对象:一般用来写列表)
2.2上下文管理器with
使用with操作文件的好处:会自动关闭文件
2.3路径处理os模块
相对路径:
1个点,代表当前目录下
2个点,代表上一级目录
绝对路径: 电脑硬盘中的文件路径
os.getcwd()和os.chdir方法使用如下如所示:
os.mkdir()和os.rmdir()方法的使用如下图所示:
os.mkdir() 方法,重名目录创建会报错
os.listdir()、os.path.isdir()和os.path.isfile()的用法如下图所示:
os.path.dirname()方法的使用如下图所示:
三、异常处理
3.1 什么是异常?
异常:当程序运行中检测到一个错误时,无法继续执行,出现了一些错误的提示,这就是所谓的“异常”
常见的异常(例子):
3.2 异常分析
我们写的代码发生异常(例子):
python所有的内置异常类型汇总:
https://www.cnblogs.com/nmb-musen/p/10856023.html
代码发生了异常还能不能往下执行: 正常情况下不能
代码发生了异常还想他继续往下执行: 异常处理(捕获)
3.3 异常捕获
异常处理:
try:
放有可能会出现错误的代码(必要的)
except 指定异常类型:
try里面的代码出现了错误之后,对错误处理的代码(必要的)
else:
try中的代码没有发生错误,执行else中的代码(可选)
finally:
不管try中代码有没有发生错误,都会执行(可选)
主动抛出异常 raise
语法格式:
- raise 异常类型(异常信息)
raise NameError(‘name ‘a’ is not defined’)
四、断言 assert
1.什么是断言?
一个assert后面跟一个条件语句,如果条件不成立就会触发断言异常
2.assert断言语句的语法格式?
assert语句用来声明某个条件是真的
当assert语句失败的时候,会引发–’AssertionError’
方式一 : assert 表达式
- 抛出断言异常后,如果想他提示一些相关信息,应该如何做?
- 这个时候就要用到assert的参数了,assert的参数定义:只要在assert这条语句的最后面,把提示信息写上去就行了
总结
try的工作原理是,当开始一个try语句后, python就在 当前程序的.上下文中作标记,这样当异常出现时就可以回到这里,try语句先执行,接下来会发生什么依赖于执行时是否出现异常。
-如果当try后的语句执行时友生异常,python就跳回到try并执行第一个匹配该异常的except子句, 异常处理完毕,控制流就通过整个try悟句(除非在处理异常时又引发新的异常) 。
-如果在try后的语句里发生了异常,却没有匹配的except子句, 异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。
-如果在try语句执行时没有友生异常,python将执行else语句后的语句(如果有else的话) ,然后控制流通过整个try语句。