
错误回溯
如果某一段代码有错误,它会一级一级向上抛
def a():
aaa
def b():
a()
b()
这段代码运行之后的结果是:
Traceback (most recent call last):
File "/Users/xiaoya198320/Desktop/things/1029/异常.py", line 6, in <module>
b()
File "/Users/xiaoya198320/Desktop/things/1029/异常.py", line 4, in b
a()
File "/Users/xiaoya198320/Desktop/things/1029/异常.py", line 2, in a
aaa
NameError: name 'aaa' is not defined
首先说第 6 行函数 b() 调用的不对,为什么不对呢,第二句话,因为第 4 行函数 b() 定义的时候调用函数 a() 不对,为啥调用 a() 不对呢,第三句话,在第 2 行 有个未被定义的变量 aaa,所以这个错误名字是 name 'aaa' is not defined。根本原因是 aaa 未被定义,然鹅一共报了 3 次错,从第一句话到最后一句话一句句往回找,这就是回溯
有经验了之后,看错误直接看最后一行。如果搞不清楚从头开始看
上述错误找到之后,定义一下变量 aaa 程序即可正常运行,还可以再打印一下
def a():
aaa = 'hello world!!'
print(aaa)
def b():
a()
b()
异常处理
一旦程序报错,就会终止执行,接下来的所有语句都没有机会去执行。如果希望在发生异常之后,接下来的语句还能够继续执行下去,就需要对异常进行处理
try-except
try:
# 可能引发异常的代码
except Exception as e:
# 异常处理逻辑
在程序中把引发异常的代码放进 try 中,用 Exceptoon 进行捕获,存在 e 中,把 e打印出来,之后的 'hello world' 语句就有机会被打印出来
def a():
try:
aaa
except Exception as e:
print(e)
a()
print('hello world')
name 'aaa' is not defined
hello world
Process finished with exit code 0
常见应用场景:
用户输入验证
x = input("请输入数字:")
try:
x = int(x)
except ValueError:
print("输入错误,请输入数字!")
文件异常
try:
with open('不存在的文件.txt', 'r') as f:
print(f.read())
except FileNotFoundError:
print("文件未找到!")
不同的异常有不同的类型,所有类型的异常都可以被 Exception 捕获到
包管理
包(Package):一组模块的集合,组织多个模块的文件夹,必须包含__init__.py文件用于初始化,通过目录树结构管理模块。这个目录下面可以有多个模块。它和库的概念比较相似,但更加灵活。包可以包含子包
模块(Module):单个.py文件,包含可复用的函数、类等代码单元。其名称就是文件名称(不包括.py后缀)。模块module,这个概念就是Python里的概念,一个模块就是一个py文件,然后包含多行代码执行一个或多个任务,库约等于模块。模块中可以包含变量、函数、类等内容,可以被其他程序引用
库(Library):由多个相关包或模块组成的集合,如NumPy、Pandas等第三方功能集合体
三方库
pip -V # 版本
pip list # 查看本地按照的三方库
pip install [package_name] # 安装包 pip install requests -i 镜像源网址
| 镜像源名称 | 镜像地址 |
|---|---|
| 阿里云 | https://mirrors.aliyun.com/pypi/simple/ |
| 清华大学 | https://pypi.tuna.tsinghua.edu.cn/simple/ |
| 中国科技大学 | https://pypi.mirrors.ustc.edu.cn/simple/ |
| 豆瓣 (douban) | https://pypi.douban.com/simple/ |
| 华为云 | https://mirrors.huaweicloud.com/repository/pypi/simple/ |
| 腾讯云 | https://mirrors.cloud.tencent.com/pypi/simple |
| 网易 | http://mirrors.163.com/pypi/simple/ |
pip show requests # 查看三方库的详细信息
pip install -U requests==2.32.4 # 包更新
pip uninstall requests # 包卸载
# 把三方库以及版本号导入到文件中
pip freeze > tongyao.txt (requirements.txt)
# 怎么安装 tongyao.txt
pip install -r tongyao.txt -i 镜像源网址
参考资料:
3880

被折叠的 条评论
为什么被折叠?



