python中的异常-模块-包

文章目录

  • 异常
    • 异常的定义
    • 异常捕获
      • 语法
        • 捕获常规异常
        • 捕获指定异常
        • 捕获多个异常
        • 捕获所有异常
        • 异常else
        • 异常finally
    • 异常传递
    • 总结
  • 模块
    • 概念
    • 导入
    • 自定义模块及导入
      • main方法
      • all变量
    • 总结
    • 自定义包
      • 定义
      • pycharm中建包的基本步骤
      • 导入方式
    • 第三方包

异常

异常的定义

当检测到一个错误时,Pyhon解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”,也就是我们常说的BUG。

异常捕获

当遇到bug时,又不希望程序停止,这时候就需要 对异常进行捕获。

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

语法

捕获常规异常

try:
可能发生的错误
except:
如果异常了要执行的代码

在这里插入图片描述

捕获指定异常

try:
可能发生的错误
except 具体异常类 as e:
如果异常了要执行的代码

在这里插入图片描述

注意
①如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常
②一般try下方只放一行尝试执行的代码

捕获多个异常

try:
可能发生的错误
except (具体异常类1,具体异常类2) as e:
如果异常了要执行的代码

在这里插入图片描述

捕获所有异常

try:
可能发生的错误
except Exception as e:
如果异常了要执行的代码

在这里插入图片描述

异常else

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

try:
可能发生的错误
except Exception as e:
如果异常了要执行的代码
else:
else部分执行的代码
在这里插入图片描述

异常finally

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

try:
可能发生的错误
except Exception as e:
如果异常了要执行的代码
else:
else部分执行的代码
finally:
finally部分执行的代码

异常传递

异常是具有传递性的。
fun3调用fun2,fun2调用fun1,,当函数fun1中发生异常,并且没有捕获处理这个异常的时候,异常会传递到函数fun2,当fun2也没有捕获处理这个异常的时候,main函数会捕获这个异常,这就是异常的传递性。当所有函数都没有捕获异常的时候,程序就会报错。

总结

java也存在异常,语法上捕获异常为try…catch

模块

概念

Python模块(Module),是一个Python文件,以.py结尾。模块能定义函数,类和变量,模块里也能包含可执行的代码。

模块的作用:python中有很多各种不同的模块,每一个模块都可以帮助我们快速的实现一些功能,比如实现和时间相关的功能就可以使用time模块。我们可以认为一个模块就是一个工具包,每一个工具包中都有各种不同的工具供我们使用进而实现各种不同的功能。简而言之:模块就是一个Python文件,里面有类、函数、变量等,我们可以拿过来用(导入模块去使用)

导入

模块在使用前需要先导入,导入的语法如下:
[from 模块名] import [模块 | 类 | 变量 | 函数 | *] [as 别名]
常用的组合形式如:

  • import 模块名
  • from 模块名 import 类、变量、方法等
  • from 模块名 import
  • import 模块名 as别名
  • from 模块名 import 功能名 as 别名

注意
fom可以省略,直接 import 即可
as别名可以省略
通过"."来确定层级关系
模块的导入一般写在代码文件的开头位置

自定义模块及导入

每个Python文件都可以作为一个模块,模块的名字就是文件的名字。也就是说自定义模块名必须要符合标识符命名规则

main方法

在实际开发中,当一个开发人员编写完一个模块后,为了让模块能够在项目中达到想要的效果,这个开发人员会自行在文件中添加一些测试信息,无论是当前文件,还是其他已经导入了该模块的文件,在运行的时候都会自动执行测试函数的调用。为了解决这个问题,需要设置该测试方法不能执行。python中使用 if name == ‘main’: 标识某个方法只能在该文件内被执行,其他地方导入这个文件时不执行。

在这里插入图片描述

当导入多个模块的时候,且模块内有同名功能。当调用这个同名功能的时候,调用到的是后面导入的模块的功能。

all变量

如果一个模块文件中有all变量,当使用from xx import *导入时,只能导入这个列表中的元素

在这里插入图片描述

总结

java中有类的导入。python模块可以理解为多个类的集合。python中包>模块>类。

自定义包

定义

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

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

包的作用
当我们的模块文件越来越多时,包可以帮助我们管理这些模块,包的作用就是包含多个模块,但包的本质依然是模块

pycharm中建包的基本步骤

[New]->[Pyhon Package]->输入包名->[OK]->新建功能模块

注意:新建包后,包内部会自动创建”init.py文件,这个文件控制着包的导入行为

导入方式

方式一:
import 包名.模块名

方式二:
from 包名 import *

注意:
可以在 init.py 文件中使用all变量控制可导入的模块

第三方包

方式1
pip install 包名

方式2
使用pycharm安装

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/21890.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跟着柳叶刀数字健康,学习如何通过病理切片预测分子分类对预后的影响|项目复现

小罗碎碎念 项目复现 今天和大家分享一个非常具有参考价值的项目,手把手带着大家复现一篇发表在柳叶刀数字健康的文章。 花了六个小时才完成的这篇推送,信息量非常大,遇到了很多报错问题,但是解决以后的感觉是非常爽的,先给大家展示一下最终的成果——在同一张切片上,通…

Android Http-server 本地 web 服务

时间:2025年2月16日 地点:深圳.前海湾 需求 我们都知道 webview 可加载 URI,他有自己的协议 scheme: content:// 标识数据由 Content Provider 管理file:// 本地文件 http:// 网络资源 特别的,如果你想直接…

PyTorch 源码学习:阅读经验 代码结构

分享自己在学习 PyTorch 源码时阅读过的资料。本文重点关注阅读 PyTorch 源码的经验和 PyTorch 的代码结构。因为 PyTorch 不同版本的源码实现有所不同,所以笔者在整理资料时尽可能按版本号升序,版本号见标题前[]。最新版本的源码实现还请查看 PyTorch 仓…

Flowmix/Docx 多模态文档编辑器:新增【操作留痕】功能,让文档编辑有迹可循!...

hi, 大家好, 我是徐小夕. 最近 flowmix/docx 多模态文档编辑器新增了【操作留痕】功能: 体验地址: https://orange.turntip.cn/docx-react 在和大家分享更新功能之前,我简单介绍一下flowmix/docx 的【操作留痕】功能。 操作留痕功能就像是一位忠实的助手…

[每周一更]-(第135期):AI融合本地知识库(RAG),谁才是最强王者!

文章目录 简单看下DeepSeek满血版配置RAG是什么?**RAG 的核心原理**RAG的局限性**RAG 技术栈**技术实现 **RAG 的应用场景****RAG vs 传统 LLM****方法 1:配合 LangChain 加载知识库****方法 2:使用 Ollama****方法 3:结合 Anythi…

go orm GORM

官网:https://gorm.io/ docs:https://gorm.io/docs/ 博客:https://www.tizi365.com/archives/6.html import ("fmt""gorm.io/driver/mysql""gorm.io/gorm" )type Product struct {gorm.ModelCode stringPr…

毕业项目推荐:基于yolov8/yolo11的100种中药材检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示:功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出(xls格式)功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…

基于Python CNN和词向量的句子相似性度量

毕业设计:基于CNN和词向量的句子相似性度量 注意:因为要计算WMD距离所以需要安装依赖库pyemd 开发环境 Anaconda Pycharm 项目说明 按照老师要求复现论文(论文提出了一个新概念相似元,通过相似元来计算两个句子的相似度‘),同…

CPU安装pytorch(别点进来)

终于! 深度学习环境配置5——windows下的torch-cpu1.2.0环境配置_requirement怎么写torch cu-CSDN博客

Django-Vue 学习-VUE

主组件中有多个Vue组件 是指在Vue.js框架中,主组件是一个父组件,它包含了多个子组件(Vue组件)。这种组件嵌套的方式可以用于构建复杂的前端应用程序,通过拆分功能和视图,使代码更加模块化、可复用和易于维…

MATLAB基础学习相关知识

MATLAB安装参考:抖音-记录美好生活 MATLAB基础知识学习参考:【1小时Matlab速成教程-哔哩哔哩】 https://b23.tv/CnvHtO3 第1部分:变量定义和基本运算 生成矩阵: % 生成矩阵% 直接法% ,表示行 ;表示列 a [1,2,3;4,5,6;7,8,9];%…

TypeScript - 数据类型 - 声明变量

TypeScript 是一种强类型的 JavaScript 超集,它引入了静态类型检查和类型注解。基础类型是 TypeScript 中最基本的类型,用于定义变量的类型。 一、数据类型 常用基本类型:boolean 、number 、string 常用,都是小写 1.布尔类型&…

有序任务规划的局限性

有序任务规划的局限性(Limitation of Ordered-Task Planning) 1. 任务前向分解(TFD)的限制 TFD(Task Forward Decomposition)是一种 基于完全有序方法(Totally Ordered Methods)的任…

MATLAB学习之旅:数据插值与曲线拟合

在MATLAB的奇妙世界里,我们已经走过了一段又一段的学习旅程。从基础的语法和数据处理,到如今,我们即将踏入数据插值与曲线拟合这片充满魅力的领域。这个领域就像是魔法中的艺术创作,能够让我们根据现有的数据点,构建出更加丰富的曲线和曲面,从而更好地理解和描述数据背后…

ASP.NET Core 下载文件

本文使用 ASP .NET Core,适用于 .NET Core 3.1、.NET 5、.NET 6和.NET 8。 另请参阅: 如何在将文件发送到浏览器后自动删除该文件。 如何将文件从浏览器上传到服务器。 如何在 ASP.NET Core 应用程序中从 URL/URI 下载文件。 如果使用.NET Framework&am…

Part 3 第十二章 单元测试 Unit Testing

概述 第十二章围绕单元测试展开,阐述了单元测试的实践与重要性,通过对比其他测试类型,突出其特点,还介绍了单元测试的最佳实践、避免的反模式以及与测试替身相关的内容,为编写高质量单元测试提供指导。 章节概要 1…

SpringCloud-Eureka初步使用

什么是REST是一组用于规范资源在网络中转移的表现形式软件架构设计风格.简单来说就是客户端和服务器之间的一种交互形式 什么是RESTful,满足了REST风格的接口或者程序,RESTful API是其中的接口,spring中提供了RestTemplate这个类,他强制执行了REST的规范,包括使用HTTP协议的状…

Linux 高级篇 日志管理、定制自己的Linux系统、备份与恢复

一、日志管理 (1)基本介绍 日志文件是重要的系统信息文件,记录了如用户登录、系统启动、系统安全、邮件及各种服务等相关重要系统事件在安全方面,日志也至关重要,它能记录系统日常发生的各类事情,可用于检…

SpringMVC 请求参数接收

目录 请求 传递单个参数 基本类型参数传递 未传递参数 ?传递参数类型不匹配 传递多个参数 传递对象 后端参数重命名 传递数组 传递集合 传递JSON数据 JSON是什么 JSON的优点 传递JSON对象 获取URL中的参数 文件上传 在浏览器与程序进行交互时,主要…

深度学习之图像回归(一)

前言 图像回归任务主要是理解一个最简单的深度学习相关项目的结构,整体的思路,数据集的处理,模型的训练过程和优化处理。 因为深度学习的项目思路是差不多的,主要的区别是对于数据集的处理阶段,之后模型训练有一些小…