当前位置: 首页 > news >正文

Python(9)-- 异常模块与包

1. 了解异常

异常:就是程序运行的过程中出现了错误

Bug:异常的意思,因为历史因为小虫子导致计算机失灵的案例,所以延续至今,bug就代表软件出现错误。

2. 异常的捕获方法

异常处理:在可能发生异常的地方,进行捕获。当异常出现的时候,提供解决方式,而不是任由其导致程序无法运行。

捕获异常的作用在于:提前假设某处会出现异常,做好提前准备,当真的出现异常的时候,可以有后续手段。

2.1 捕获异常语法:

2.2 捕获指定异常:

注意:

① 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。

② 一般try下方只放一行尝试执行的代码。

2.3 捕获多个异常

当捕获多个异常时,可以把要捕获的异常类型的名字,放到except 后,并使用元组的方式进行书写。

2.4 捕获异常并输出描述信息

2.5 异常else

else表示的是如果没有异常要执行的代码。

2.6 异常的finally

finally表示的是无论是否异常都要执行的代码,例如关闭文件。

2.7 捕获所有信息

3. 异常的传递

异常具有传递性。当所有函数都没有捕获异常的时候, 程序就会报错。

注:利用异常具有传递性的特点, 当我们想要保证程序不会因为异常崩溃的时候, 就可以在main函数中设置异常捕获, 由于无论在整个程序哪里发生异常, 最终都 会传递到main函数中, 这样就可以确保所有的异常都会被捕获

4. Python模块

4.1 模块的导入

模块:就是一个Python代码文件,内含类、函数、变量等,我们可以导入进行使用。

模块导入的语法如下:

常用的组合形式如:

  • import 模块名

            

  • from 模块名 import 类、变量、方法等

  • from 模块名 import *

  • import 模块名 as 别名
  • from 模块名 import 功能名 as 别名

注意:

from可以省略,直接import即可

as别名可以省略

通过”.”来确定层级关系

模块的导入一般写在代码文件的开头位置

4.2 自定义模块

自定义模块名必须要符合标识符命名规则

自定义模块并导入: 在Python代码文件中正常写代码即可,通过import、from关键字和导入Python内置模块一样导入即可使用。

if __main__ == “__main__”表示,只有当程序是直接执行的才会进入if内部,如果是被导入的,则if无法进入

注意:

不同模块,同名的功能,如果都被导入,那么后导入的会覆盖先导入的

__all__变量可以控制import *的时候哪些功能可以被导入

5. Python包

5.1 自定义包:

从物理上看,包就是一个文件夹,在该文件夹下包含了一个 __init__.py 文件,该文件夹可用于包含多个模块文件

从逻辑上看,包的本质依然是模块

__init__.py文件:创建包会默认自动创建的文件,通过这个文件来表示一个文件夹是Python的包,而非普通的文件夹。

__all__变量的作用: 同模块中学习到的是一个作用,控制 import * 能够导入的内容

导入包:

注意:必须在`__init__.py`文件中添加`__all__ = []`,控制允许导入的模块列表

5.2 安装第三方包:

  • 科学计算中常用的:numpy包
  • 数据分析中常用的:pandas包
  • 大数据计算中常用的:pyspark、apache-flink包
  • 图形可视化常用的:matplotlib、pyecharts
  • 人工智能常用的:tensorflow

pip install 包名称

pip install -i

https://pypi.tuna.tsinghua.edu.cn/simple 包名称

6. 综合案例

创建一个自定义包,名称为:my_utils  (我的工具)

在包内提供2个模块 s

tr_util.py (字符串相关工具,内含:)

  • 函数:str_reverse(s),接受传入字符串,将字符串反转返回
  • 函数:substr(s, x, y),按照下标x和y,对字符串进行切片

file_util.py(文件处理相关工具,内含:)

  • 函数:print_file_info(file_name),接收传入文件的路径,打印文件的全部内容,如文件不存在则捕获异常,输出提示信息,通过finally关闭文件对象
  • 函数:append_to_file(file_name, data),接收文件路径以及传入数据,将数据追加写入到文件中 
str_util.py:
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]
file_util.py:
def print_file_info(file_name):"""打印文件内容:param file_name: 文件路径"""f = Nonetry:f = open(file_name, 'r', encoding='utf-8')content = f.read()print("文件内容:")print(content)except Exception as e:print(f"文件不存在或读取错误:{e}")finally:if f:  # 如果文件对象存在f.close()def append_to_file(file_name, data):"""追加数据到文件:param file_name: 文件路径:param data: 要追加的数据"""with open(file_name, 'a', encoding='utf-8') as f:f.write(data)print("数据追加成功!")
__init__.py
from .str_util import str_reverse, substr
from .file_util import print_file_info, append_to_file__all__ = ['str_reverse', 'substr', 'print_file_info', 'append_to_file']

main

from my_utils import str_util, file_util# 测试字符串工具
print("字符串反转:", str_util.str_reverse("Python"))
print("字符串切片:", str_util.substr("Hello World", 2, 7))# 测试文件工具
file_util.print_file_info("test.txt")  # 测试不存在的文件
file_util.append_to_file("test.txt", "这是追加的内容\n")
file_util.print_file_info("test.txt")  # 测试存在的文件

http://www.dtcms.com/a/325878.html

相关文章:

  • CLIP,BLIP,SigLIP技术详解【二】
  • Flink + Hologres构建实时数仓
  • 机器学习:基于OpenCV和Python的智能图像处理 实战
  • 【05】昊一源科技——昊一源科技 嵌入式笔试, 校招,题目记录及解析
  • 提示词注入攻防全解析——从攻击原理到防御浅谈
  • gophis钓鱼
  • 深入解析 resolv.conf 文件:DNS 配置的核心
  • 区间修改 - 差分
  • 在Linux中使用docker-compose快速搭建Prometheus监控系统
  • foreach 块并行加速
  • 澳洲增高营养品排行榜
  • 小波卷积YYDS!小波变换+CNN创新结合
  • 无人机航拍数据集|第11期 无人机人员行为目标检测YOLO数据集1868张yolov11/yolov8/yolov5可训练
  • 【bug】diff-gaussian-rasterization Windows下编译 bug 解决
  • STM32 HAL库驱动0.96寸OLED屏幕
  • 【学习】DCMM认证从“跟风“到“生存法则“的进化
  • EI检索-学术会议 | 人工智能、虚拟现实、可视化
  • react中父子数据流动和事件互相调用(和vue做比较)
  • 小杰python高级(three day)——matplotlib库
  • 关于微信小程序的笔记
  • 告别“焊武帝”时代!30-65W零外围A+C快充协议正式上线
  • Cherryusb UAC例程对接STM32内置ADC和PWM播放音乐和录音(下)=>UAC+STM32 ADC+PWM实现录音和播放
  • TradingAgents-CN: 基于多智能体的中文金融交易决策框架
  • Apache Ignite超时管理核心组件解析
  • XX生产线MES系统具体实施方案
  • 第2节 大模型分布式推理架构设计原则
  • react+echarts实现图表展示的两种方法
  • uni-app app端安卓和ios如何申请麦克风权限,唤起提醒弹框
  • 初识影刀:将多个相同格式EXCEL中内容汇总到一个EXCEL文件中去
  • HRM分层推理模型在医疗AI上的应用探析