Python编程学习第一篇——Python零基础快速入门(六)(4)异常处理
我们已经了解了Python的基本数据类型、变量和基本的逻辑控制语句,基于这些基础知识可以编写一些小程序了,但是在写程序的时候我们会发现,有时候程序并不是按我们预期的方向执行,有的直接报错,有的没有报错,却并未得到我们预期的结果。这些在Python程序运行过程中出现的错误或异常情况就是异常。为了更好地处理异常,Python提供了一些基本的异常处理方法和技巧。
- try-except语句:
try-except语句用于捕获和处理异常。代码块在try语句中运行,如果出现异常,则会跳转到except语句块,其中可以执行相应的处理逻辑。下面是一个简单的示例:
try:num1 = 10num2 = 0result = num1 / num2print(result)
except ZeroDivisionError:print("除数不能为0")
在这个例子中,我们尝试将一个数除以0。由于除数为0会引发ZeroDivisionError异常,所以会跳转到except语句块,并输出"除数不能为0"。
- try-except-else语句:
try-except-else语句在没有发生异常时执行else语句块中的代码。如果try语句块中发生异常,则不会执行else语句块。下面是一个示例:
try:num1 = 10num2 = 2result = num1 / num2
except ZeroDivisionError:print("除数不能为0")
else:print(result)
在这个例子中,由于除数不为0,所以没有发生ZeroDivisionError异常,代码会执行else语句块,并输出结果2.0。
- try-except-finally语句:
try-except-finally语句用于在无论是否发生异常时都执行finally语句块中的代码。无论是否发生异常,finally语句块都会被执行。下面是一个示例:
try:f = open("file.txt", "r")# 执行一些操作
except IOError:print("文件读取错误")
finally:f.close()
在这个例子中,我们尝试打开一个文件进行读取。如果发生IOError异常,会跳转到except语句块,并输出"文件读取错误"。无论是否发生异常,finally语句块中的f.close()都会被执行,确保文件被正确关闭。
- 异常处理中获取异常信息:
在except语句块中,可以使用as关键字将异常信息赋值给一个变量,以便进一步处理。下面是一个示例:
try:num1 = 10num2 = 0result = num1 / num2
except ZeroDivisionError as e:print("除数不能为0:", e)
在这个例子中,除数为0会引发ZeroDivisionError异常,我们将异常信息赋值给变量e,并输出"除数不能为0"和异常信息。
- 自定义异常:
除了Python提供的内置异常类型,我们还可以自定义异常。自定义异常通常继承自Exception类。下面是一个示例:
class MyCustomException(Exception):passtry:num = 10if num > 5:raise MyCustomException("数字太大了")
except MyCustomException as e:print(e)
在这个例子中,我们定义了一个自定义异常类MyCustomException,并在一定条件下手动抛出该异常。然后,在except语句块中捕获并处理这个自定义异常。
以上是Python中基本的异常处理方法和技巧的详细讲解,通过适当使用这些技巧,可以帮助我们更好地处理程序中的异常情况。这一节就到这里,大家下期再见!
相关文章:
Python编程学习第一篇——Python零基础快速入门(六)(4)异常处理
我们已经了解了Python的基本数据类型、变量和基本的逻辑控制语句,基于这些基础知识可以编写一些小程序了,但是在写程序的时候我们会发现,有时候程序并不是按我们预期的方向执行,有的直接报错,有的没有报错,…...
GraphHopper-map-navi_路径规划、导航(web前端页面版)
文章目录 一、项目地址二、踩坑环境三、问题记录3.1、graphhopper中地图问题3.1.1. getOpacity不存在的问题3.1.2. dispatchEvent不存在的问题3.1.3. vectorLayer.set(background-maplibre-layer, true)不存在set方法3.1.4. maplibre-gl.js.map不存在的问题3.1.5. Uncaught Ref…...
2-46 基于matlab的声音信号的短时能量、短时过零率、端点检测
基于matlab的声音信号的短时能量、短时过零率、端点检测。通过计算计算短时能量、调整能量门限,然后开始端点检测。输出可视化结果。程序已调通,可直接运行。 2-46 短时能量 短时过零率 端点检测 - 小红书 (xiaohongshu.com)...
力扣630.课程表 II
力扣630.课程表 II 反悔堆 将课程按照结束时间从大到小排序每次取一个判断当前是否能学完该课程如果能学完就将持续时间加入堆 更新答案如果学不完就判断该课程持续时间是否比之前学过的最大的还大 用时更短的话就将旧的弹出 class Solution {public:int scheduleCourse(ve…...
数字IC后端流程简述
1. 设计输入 目标:接收前端设计(如RTL代码和约束文件)的输出。 工具:前端设计工具(如Synopsys Design Compiler或Cadence Genus)。 步骤: 确保前端设计的RTL代码经过综合并生成了门级网表(Netlist)。 收集约束文件(Constraints),如时序约束(SDC文件)、功率约束等…...
数学建模--整数规划和非线性规划
目录 整数规划 非线性规划 总结 整数规划中分支定界法的具体步骤和实现细节是什么? 初始化: 分支: 定界: 剪枝: 终止条件: 非线性规划中的梯度法、牛顿法和拟牛顿法的比较分析有哪些?…...
Linux-查看dd命令进度
查看dd命令进度 一、概述1. 在一个终端执行拷贝任务2. 在另一终端执行进度命令 一、概述 系统:Ubuntu 22.04 在使用 dd 命令做拷贝大量数据的时候,因为并没有输出,所以比较难判断当前进度,因此可以使用下面的命令作为进度查看 …...
高效微调 100 多种大语言模型:先计算法,急速推理!
hiyouga/LLaMA-Factoryhttps://github.com/hiyouga/LLaMA-Factory Stars: 26.9k License: Apache-2.0 LLaMA-Factory 是一个用于高效微调 100 多个大型语言模型(ACL 2024)的 WebUI。 多种模型:LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Y…...
opencv grabCut前景后景分割去除背景
参考: https://zhuanlan.zhihu.com/p/523954762 https://docs.opencv.org/3.4/d8/d83/tutorial_py_grabcut.html 环境本次: python 3.10 提取前景: 1、需要先把前景物体框出来 需要坐标信息,可以用windows自带的画图简单提取像素…...
qt--电子相册
一、项目要求 设计一个电子相册,点击上一张,切换到上一张图片,点击下一张,切换到下一张图片。 要求:图片的展示可以循环(QList<QString>) 要求:界面美观 二、项目代码 本质是通…...
【MSP430】MSP430F5529几个定时器
MSP430F5529共有四个定时器,其中三个是Timer_A定时器,一个是Timer_B定时器。 这些定时器在MSP430F5529微控制器中发挥着重要的作用,不仅支持多重捕获/比较、PWM输出和内部定时功能,还具有丰富的中断处理能力。这些特性使得MSP430…...
苍穹外卖(一)之环境搭建篇
Ngnix启动一闪而退 启动之前需要确保ngnix.exe的目录中没有中文字体,在conf目录下的nginx.conf文件查看ngnix的端口号,一般默认为80,若80端口被占用就会出现闪退现象。我们可以通过logs/error.log查看错误信息,错误信息如下&…...
【限免】16PAM、16PSK、16QAM、16CQAM星座图及误码率【附MATLAB代码】
微信公众号:智能电磁频谱算法 QQ交流群:949444104 主要内容 MATLAB代码 % Parameters M 16; N 4; % Number of circles for CQAM SNR_dB 0:2:25; % Extended SNR range to reach higher values num_symbols 1e5; % Total number of symbols for s…...
09-软件易用性
易用性是用户体验的一个重要方面,网站建设者一般会沉溺于自己的思维习惯,而造成用户使用的不畅。易用性不仅是专业UI/UE人员需要研究,对于网站建设其他岗位的人也应该了解一定的方法去检验和提升网站的易用性。通常对易用性有如下定义: 易理解…...
FPGA开发——独立仿真和联合仿真
一、概述 我们在进行FPGA开发的过程之中,大部分情况下都是在进行仿真,从而验证代码实现结果的正确与否,这里我们引入了独立仿真和联合仿真进行一个简单介绍。 联合仿真:一般我们在进行仿真之前需要在相应的软件中建立相应的工程…...
基于STM32瑞士军刀--【FreeRTOS开发】学习笔记(二)|| 堆 / 栈
堆和栈 1. 堆 堆就是空闲的一块内存,可以通过malloc申请一小块内存,用完之后使用再free释放回去。管理堆需要用到链表操作。 比如需要分配100字节,实际所占108字节,因为为了方便后期的free,这一小块需要有个头部记录…...
ABAP+从SAP发出去的PDF文件在第三方系统出现乱码
这是一个 ABAP转换PDF调用函数CALL FUNCTION CONVERT_OTF的问题记录,关乎字体STSong-Light-ldentity-H 和 STSong-Light的区别 背景: 做了一个增强,是采购订单审批后自动发送采购订单PDF1到企业微信,用户再将企业微信收到的P…...
基于springsecurity的会话并发处理功能(附代码)
1. 需求 在项目中往往需要实现一个限制不同设备同时登录的功能,比如我只允许同一时间只有一个客户端能登录,而其他的已登陆的客户端会被挤出来 而springsecurity中恰好就帮我们实现好了对应的接口功能,我们只需要自定义配置就好 2. 结合sp…...
Redis底层数据结构的实现
文章目录 1、Redis数据结构1.1 动态字符串1.2 intset1.3 Dict1.4 ZipList1.5 ZipList的连锁更新问题1.6 QuickList1.7 SkipList1.8 RedisObject 2、五种数据类型2.1 String2.2 List2.3 Set2.4 ZSET2.5 Hash 1、Redis数据结构 1.1 动态字符串 Redis中保存的Key是字符串…...
制作excel模板,用于管理后台批量导入船舶数据
文章目录 引言I 数据有效性:基于WPS在Excel中设置下拉框选择序列内容II 数据处理:基于easyexcel工具实现导入数据的持久化2.1 自定义枚举转换器2.2 ExcelDataConvertExceptionIII 序列格式化: 基于Sublime Text 文本编辑器进行批量字符操作引言 需求: excel数据导入模板制…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...
大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程
基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...
