异常
异常概念
- python程序在运行过程中,遇到错误,会停止程序的执行,并提示一些错误信息,这就是异常
- 程序停止执行并提示错误信息这个过程,我们称为抛出异常
捕获异常
try:
尝试执行的代码
except:
出现错误的处理
try:
尝试执行的代码
except 错误类型1:
pass
except 错误类型2:
pass
except Exception as result:
print("未知错误%s" % result)
# 报错时最后一行第一个单词就是错误类型
except Exception as result:
print("未知错误%s" % result)
try:
尝试执行的代码
except 错误类型1:
pass
except 错误类型2:
pass
except Exception as result:
print("未知错误%s" % result)
else:
#没有异常才会执行的代码
finally:
#无论是否有异常都会执行的代码
异常的传递
- 异常的传递——当函数/方法出现异常,会将异常传递给调用函数的一方
- 如果传递到主程序仍然没有异常处理,程序才会被终止
抛出raise异常
应用场景:
- 根据程序的使用场景主动抛出异常
- 实例:
- 提示用户输入密码,如果长度小于8,抛出异常
抛出异常:
-
在python中提供了一个Exception异常类 -
在开发时,如果满足特点的业务需求时,希望可以抛出异常,可以:
- 创建一个Exception对象
- 使用raise关键字抛出异常对象
ex = Exception("密码长度不足")
raise ex
模块:
模块的概念:
- 每一个以扩展名py结尾的python文件都是一个模块
- 模块名同样也是一个标识符,需要符合标识符命名规则
- 模块中定义的全局变量,类,函数,都是提供给外界的工具
- 使用时需要导入
两种导入模式
- import导入:在导入之后每一个模块占一行
import 模块1 , 模块2(不推荐)
import 模块1
import 模块2
import 模块名1 as 模块别名(大驼峰命名法)
# 防止模块名称太复杂
- from import导入:
from 模块1 import 工具名
# 导入模块中部分工具
# 导入之后不需要通过模块名.访问,直接使用提供的工具
- 若两个模块存在同名函数,后导入的会覆盖先导入的函数
- from ... import *
模块搜索顺序
- 搜索当前目录指定模块名文件,如果有直接导入
- 若没有再搜索系统目录
在开发时,给文件起名不要和系统模块文件重名
- 每一个模块都有内置属性__file__可以查看模块完整路径
原则——每一个文件都可以被导入
包
概念:
- 包是一个包含多个模块的特殊目
- 目录下有一个特殊的文件__init__.py:在该文件里指定对外界提供的模块列表
from . import 模块名/文件名
- 包的命名方式和变量名一致,小写字母+_
- 使用import 包名 可以一次导入包中所有的模块
发布模块:(了解即可,所以不详细写代码)
使用pip安装第三方模块:
pip install pygame # 安装
pip uninstall pygame # 卸载
在mic下安装ipython
pip install ipython # 安装
在linux安装
apt install ipython
apt install ipython3
文件
文件的概念和作用:
- 储存在长期储存设备(硬盘,u盘,光盘等)上的一段数据
存储方式:
- 以二进制的方式存储
- 文本文件:
- 使用文本编辑软件查看
- 本质还是二进制文件
- 二进制文件:
- 不是给人阅读,而是给其他软件使用
- 例如:图片文件,视频文件,音频文件等
- 不能使用文本编辑器查看
文件的基本操作:
- 打开文件
- 读、写文件
- 关闭文件
操作文件的函数和方法:
文件/目录的常用管理
- 导入os模块实现:重命名,删除,改变路径等内容......
- 文件操作
- rename——重命名
- remove——删除文件
- 目录操作
- listdir——目录列表
- mkdir——目录名
- rmdir——删除目录
- getcwd——获取当前目录
- chdir——修改工作目录
- path.isdir——判断是否为文件
eval函数:
eval()函数十分强大——将字符串当成有效的表达式求值并返回计算结果
eval("1 + 1")
2
inpu_str = input("请输入算术题:")
print(eval(inpu_str))
不要使用eval()直接转换input的结果,因为可以直接进行文件操作
|