一、了解异常
1.什么是异常:
异常就是程序运行的过程中出现了错误
2.bug是什么意思:
bug就是指异常的意思,因为历史因为小虫子导致计算机失灵的案例,所以延续至今,bug就代表软件出现错误。
二、异常的捕获方法
这个语法是可以捕获所有的异常:
捕获特定的错误类型的异常
通过print(e)还可以输出错误的类型的描述
补充
异常else
异常的finally
总结
else和finally是可有可无
如果是要捕获所有的异常
•except:
•except Exception:
•两种方式捕获全部的异常,更多是使用第二种
三、异常的传递
异常的传递
fun01的异常会在main中捕获(最高层级中去捕获)
mian():利用异常具有传递性的特点, 当我们想要保证程序不会因为异常崩溃的时候,
就可以在main函数中设置异常捕获,由于无论在整个程序哪里发生异常, 最终都
会传递到main函数中, 这样就可以确保所有的异常都会被捕获
四、Python模块
1.模块的导入
模块:Python 模块(Module),是一个 Python 文件,以 .py 结尾. 模块能定义函数,类和变量,模块里也能包含可执行的代码.
模块的作用:python中有很多各种不同的模块, 每一个模块都可以帮助我们快速的实现一些功能, 比如实现和时间相关的功能就可以使用time模块,我们可以认为一个模块就是一个工具包,每一个工具包中都有各种不同的工具供我们使用进而实现各种不同的功能.
即:模块就是一个Python文件,里面有类、函数、变量等,我们可以拿过来用(导入模块去使用)
模块的导入方式
from和as都是可以省略的
注意事项
通过'.'来确定层级关系,模块的导入一般卸载文件的开头位置。
2.自定义模块
制作自定义模块
测试模块(__mian__的作用)
if__main__ == “__main__”表示,只有当程序是直接执行的才会进入if内部,如果是被导入的,则if无法进入:
__all__的使用
不写all就是导入全部
注意事项
不同模块,同名的功能,如果都被导入,那么后导入的会覆盖先导入的
五、Python包
Python包的概念:从物理上看,包就是一个文件夹,在该文件夹下包含了一个 __init__.py 文件,该文件夹可用于包含多个模块文件,从逻辑上看,包的本质依然是模块。
包的作用
当我们的模块文件越来越多时,包可以帮助我们管理这些模块,包的作用就是包含多个模块,但包的本质依然是模块
包的创建
第三方包
安装第三方包的方法
1.这是通过外网的方式进行下载,会比较慢
2.pip网络优化,用国内的网
3.在pycharm中进行下载
综合案例
首先新建python软件包
在file_util中
"""
文件处理相关的工具模块
"""
def print_file_info(file_name):
"""
接受传入文件的路径,打印文件的全部内容
:param file_name:读取文件的路径
:return:None
"""
f=None
try:
f = open(file_name, 'r', encoding='UTF-8')
content = f.read()
print('文件的全部内容如下:')
print(content)
except Exception as e:
print(f"程序出现异常了,原因是:{e}")
finally:
if f: # 只有当变量NONE时候是False,如果有内容才是True(如果有open文件就True,后续才可以关闭文件)
f.close()
def append_to_file(file_name, data):
"""
功能:将指定的数据追加到指定的文件中
:param file_name: 文件的路径
:param data: 指定的数据
:return: None
"""
f = open(file_name, 'a', encoding='UTF-8')
f.write(data)
f.write('\n')
f.close()
if __name__ == '__main__':
print_file_info('D:/bill.txt')
append_to_file('D:/test_append.test', '黑马程序员')
在str_util
"""
字符串相关的工具模块
"""
def str_reverse(s):
"""
将字符串完成反转
:param s:将被反转的字符串
:return:反转后的字符串
"""
return s[::-1]
def substr(s, x, y):
"""
按照下标x和y,对字符串进行切片
:param s: 被切片的字符串
:param x:开始切片下标
:param y:结束切片的下标
:return:切片后的字符串
"""
return s[x:y:1]
if __name__ == '__main__':
print(str_reverse('黑马程序员'))
print(substr('黑马程序员', 1, 3))
在pythonProject中