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安装

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

亲测Windows部署Ollama+WebUI可视化

一. Ollama下载 登录Ollama官网(Ollama)点击Download进行下载 如果下载很慢可用以下地址下载: https://github.com/ollama/ollama/releases/download/v0.5.7/OllamaSetup.exe 在DeepSeek官网上,你可以直接点击【model】 到达这个界面之后,…

ios UICollectionView使用自定义UICollectionViewCell

和UITableView用法类似,UITableView主要是显示按行排列的数据,UICollectionView则用在显示多行多列的数据,今天我们继续来实现app下载页面的效果。 1.先自定义UICollectionViewCell,一个cell就相当于列表中的一项了。 记得勾上&a…

【个人开源】——从零开始在高通手机上部署sd(二)

代码:https://github.com/chenjun2hao/qualcomm.ai 推理耗时统计 单位/ms 硬件qnncpu_clipqnncpu_unetqnncpu_vaehtp_cliphtp_unethtp_vae骁龙8 gen124716.994133440.39723.215411.097696.327 1. 下载依赖 下载opencv_x64.tar,提取码: rrbp下载opencv_aarch64.t…

R 语言科研绘图第 27 期 --- 密度图-分组

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…

REACT学习DAY02(恨连接不上服务器)

受控表单绑定 概念&#xff1a;使用React组件的状态&#xff08;useState&#xff09;控制表单的状态 1. 准备一个React状态值 const [value,setValue] useState() 2. 通过value属性绑定状态&#xff0c;通过onChange属性绑定状态同步的函数 <input type"text&quo…

一周学会Flask3 Python Web开发-response响应格式

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 在HTTP响应中&#xff0c;数据可以通过多种格式传输。大多数情况下&#xff0c;我们会使用HTML格式&#xff0c;这也是Flask中…

深度学习基础--ResNet网络的讲解,ResNet50的复现(pytorch)以及用复现的ResNet50做鸟类图像分类

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前言 如果说最经典的神经网络&#xff0c;ResNet肯定是一个&#xff0c;这篇文章是本人学习ResNet的学习笔记&#xff0c;并且用pytorch复现了ResNet50&…

linux 驱动编程配置(minis3c2440)

1.介绍 1. 启动过程&#xff1a;启动u-boot------>>启动linux内核----->>挂载根文件系统 2. uboot是一个裸机程序&#xff0c;是一个bootloader&#xff0c;用于启动linux系统以及系统初始化 ubootloader主要完成了哪些任务&#xff1a;1. 初始化异常向量表&a…

【Excel】【VBA】根据内容调整打印区域

Excel VBA&#xff1a;自动调整打印区域的实用代码解析 在Excel中&#xff0c;我们经常需要调整打印区域。今天介绍一段VBA代码&#xff0c;它可以根据C列的内容自动调整打印区域。 Dim ws As Worksheet Dim lastRow As Long Dim r As Long 设置当前工作表 Set ws ActiveSh…

wps中zotero插件消失,解决每次都需要重新开问题

参考 查看zotero目录 D:\zotero\integration\word-for-windows 加载项点击 dotm即可 长期解决 把dom 复制到 C:\Users\89735\AppData\Roaming\kingsoft\office6\templates\wps\zh_CN还是每次都需要重新开的话 重新加载一下

【Java八股文】09-计算机操作系统面试篇

文章目录 计算机操作系统面试篇用户态和内核态的区别&#xff1f;用户态和内核态的区别&#xff1f; 进程管理线程和进程的区别是什么&#xff1f;进程&#xff0c;线程&#xff0c;协程的区别是什么&#xff1f;创建一个协程的过程线程运行过程中申请到的东西在切换时是否全部…

CPU安装pytorch(别点进来)

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

echarts找不到了?echarts社区最新地址

前言&#xff1a;在之前使用echarts的时候&#xff0c;还可以通过上边的导航栏找到echarts社区&#xff0c;但是如今的echarts变更之后&#xff0c;就找不到echarts社区了。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 如今…

什么是事务?并发事务引发的问题?什么是MVCC?

文章目录 什么是事务&#xff1f;并发事务引发的问题&#xff1f;什么是MVCC&#xff1f;1.事务的四大特性2.并发事务下产生的问题&#xff1a;脏读、不可重复读、幻读3.如何应对并发事务引发的问题&#xff1f;4.什么是MVCC&#xff1f;5.可见性规则&#xff1f;参考资料 什么…

【算法基础】--前缀和

前缀和 一、一维前缀和示例模板[寻找数组的中心下标 ](https://leetcode.cn/problems/tvdfij/description/)除自身以外的数组乘积和可被k整除的子数组 一、一维前缀和 前缀和就是快速求出数组某一个连续区间内所有元素的和。 示例模板 已知一个数组arr&#xff0c;求前缀和 …

【含文档+PPT+源码】基于Django的新闻推荐系统的设计与实现

项目介绍 本课程演示的是一款基于Django的新闻推荐系统的设计与实现&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Python学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.…

内容中台架构下智能推荐系统的算法优化与分发策略

内容概要 在数字化内容生态中&#xff0c;智能推荐系统作为内容中台的核心引擎&#xff0c;承担着用户需求与内容资源精准匹配的关键任务。其算法架构的优化路径围绕动态特征建模与多模态数据融合展开&#xff0c;通过深度强化学习技术实现用户行为特征的实时捕捉与动态更新&a…

如何在WPS打开的word、excel文件中,使用AI?

1、百度搜索&#xff1a;Office AI官方下载 或者直接打开网址&#xff1a;https://www.office-ai.cn/static/introductions/officeai/smartdownload.html 打开后会直接提示开始下载中&#xff0c;下载完成后会让其选择下载存放位置&#xff1a; 选择位置&#xff0c;然后命名文…

QML 实现一个动态的启动界面

QML 实现一个动态的启动界面 一、效果查看二、源码分享三、所用到的资源下载 一、效果查看 二、源码分享 工程结构 main.qml import QtQuick import QtQuick.Controls import QtQuick.Dialogs import Qt.labs.platformWindow {id:windowwidth: 640height: 400visible: truetit…

springboot之解析请求参数时,无法获取方法参数的名称。

主要报错信息&#xff1a; java.lang.IllegalArgumentException: Name for argument of type [java.lang.Integer] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the ‘-parameters’ flag. 改bug过程&#x…