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

软件测试/测试开发丨Python异常处理 学习笔记

点此获取更多相关资料

本文为霍格沃兹测试开发学社学员学习笔记分享
原文链接:https://ceshiren.com/t/topic/27722

异常处理

  • 编写程序时,即使语句或表达式使用了正确的语法,执行时仍可能触发错误。执行时检测到的错误称为异常,大多数异常不会被程序处理,程序会中断运行,并抛出异常信息。
  • 如果不想发生异常时,程序被中断执行,可以编写程序处理选定的异常

1、异常捕获

  • Python 使用 try/except语句捕捉异常。
  • try/except 语句用来检测 try 语句块中的错误,从而让 except 语句捕获异常信息并处理。
  • 如果你不想在异常发生时结束你的程序,只需在try里捕获它。
file = open("data.txt","r")
try:# 写入数据时可能会有问题file.write("写入的数据")
except IOError as err:print("文件不能写入", err)file.close()

2、捕获多个异常

  • 如果一段代码可能会发生多种异常,并想在程序中都想处理,可以使用多个 except 分别捕捉异常。
  • 可以捕捉 Exception异常类型来处理所有的异常,如果有多个时, Exception必须放在最后捕捉该异常,否则无法处理到其它异常。
file = open("data.txt","r")
try:# 写入数据时可能会有问题# file.write("写入的数据")# print(a)# print(3 / 0)# print([][10])print("hello" + 100)
except IOError as err:print("文件不能写入", err)
except NameError:print("标识符没有定义")
except ZeroDivisionError:print("除数不能为0")
except IndexError:print("下标越界了")
except Exception:print("程序运行出错,请检查代码")
file.close()

3、else操作

  • Python 使用 else 在处理代码无异常时的后续操作
try:n = input("请输入一个数字:")num = int(n)
except Exception:print("元素无法转换为数字")
else:print("转换后成功",num)

4、finally操作

  • Python 使用 finally 处理无论异常是否发异,都要执行的代码,一般用来完成清理工作
try:file = open("data.txt","r")# file.write("A")
except Exception:print("文件操作报错")
finally:print("文件已关闭")file.close()

5、作业

作业要求

编写一个Python程序,可以执行加法、减法、乘法和除法操作。用户可以输入两个数字和运算符,然后计算并输出结果。实现计算器的功能(+、-、*、/),并处理异常情况,比如:输入的不是数字、除数为0等。

def operation(number_1,symbol,number_2):match symbol:case "+":return number_1 + number_2case "-":return number_1 - number_2case "*":return number_1 * number_2case "/":if number_2 == 0:raise Exception("除数不能为0!")else:return number_1 / number_2case _:raise Exception(f"您输入的运算符{symbol}有误!")
def calculator():try:number_1 = int(input("请输入第一个数字:\n"))symbol = input("请输入+ - * /其中一个运算符:\n")number_2 = int(input("请输入第二个数字:\n"))except Exception:print("请输入整数数字!")else:try:result = operation(number_1, symbol, number_2)except Exception as err:print(err)else:print(f"您输入的计算结果为:{result}")if __name__ == '__main__':calculator()

相关文章:

软件测试/测试开发丨Python异常处理 学习笔记

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27722 异常处理 编写程序时,即使语句或表达式使用了正确的语法,执行时仍可能触发错误。执行时检测到的错误称为异常,大…...

026 - STM32学习笔记 - 液晶屏控制(三) - DMA2D快速绘制矩形、直线

026- STM32学习笔记 - 液晶屏控制(三) - DMA2D快速绘制矩形、直线等 上节直接操作LTDC在先视频上直接显示,我们直接操作显存地址空间中的内容,用来显示图形,但是相对来说,这种方法费时费力,这节…...

【牛客网】OR59 字符串中找出连续最长的数字串

题目 思路 创建两个字符串 temp 和 ret 创建指针i用来遍历字符串通过i遍历字符串,如果遇到数字则将这个数组加到字符串temp中 i,如果遇到字母,则判断temp字符串的长度和ret字符串的长度,如果temp<ret则说明这个字符串不是要的字符串,如果temp>ret则说明此时temp字符串是…...

云原生监控系统Prometheus:基于Prometheus构建智能化监控告警系统

目录 一、理论 1.Promethues简介 2.监控告警系统设计思路 3.Prometheus监控体系 4.Prometheus时间序列数据 5.Prometheus的生态组件 6.Prometheus工作原理 7.Prometheus监控内容 8.部署Prometheus 9.部署Exporters 10.部署Grafana进行展示 二、实验 1.部署Prometh…...

C++ 学习系列 -- std::list

一 std::list 介绍 list 是 c 中的序列式容器&#xff0c;其实现是双向链表&#xff0c;每个元素都有两个指针&#xff0c;分别指向前一个节点与后一个节点 链表与数组都是计算机常用的内存数据结构&#xff0c;与数组连续内存空间不一样的地方在于&#xff0c;链表的空间是不…...

YOLOv8血细胞检测(6):多维协作注意模块MCA | 原创独家创新首发

💡💡💡本文改进:多维协作注意模块MCA,效果秒杀ECA、SRM、CBAM,创新性十足,可直接作为创新点使用。 MCA | 亲测在血细胞检测项目中涨点,map@0.5 从原始0.895提升至0.910 收录专栏: 💡💡💡YOLO医学影像检测:http://t.csdnimg.cn/N4zBP ✨✨✨实战医学影…...

FFmpeg横竖版视频互换背景模糊一键生成

视频处理是现代多媒体应用中常见的需求。其中横竖版视频互换和背景模糊是视频编辑中常见的操作。FFmpeg是一个功能强大的工具,适用于这些任务。 本文将详细介绍如何使用FFmpeg进行横竖版视频互换和背景模糊。 文章目录 操作命令与命令说明横版转竖版竖版转横版背景模糊处理横…...

Java 华为真题-小朋友分班

需求&#xff1a; 题目描述 幼儿园两个班的小朋友在排队时混在了一起&#xff0c;每位小朋友都知道自己是否与前面一位小朋友同班&#xff0c;请你帮忙把同班的小朋友找出来小朋友的编号是整数&#xff0c;与前一位小朋友同班用Y表示&#xff0c;不同班用N表示学生序号范围(0&…...

机器学习必修课 - 编码分类变量 encoding categorical variables

1. 数据预处理和数据集分割 import pandas as pd from sklearn.model_selection import train_test_split导入所需的Python库 !git clone https://github.com/JeffereyWu/Housing-prices-data.git下载数据集 # Read the data X pd.read_csv(/content/Housing-prices-data/t…...

ClickHouse进阶(二十二):clickhouse管理与运维-服务监控

进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Kerberos安全认证-CSDN博客 📌订阅:拥抱独家专题,你的订阅将点燃我的创作热情! 👍点赞:赞同优秀创作,你的点赞是对我创…...

Hadoop使用hdfs指令查看hdfs目录的根目录显示被拒

背景 分布式部署hadoop,服务机只有namenode节点,主机包含其他所有节点 主机关机后,没有停止所有节点,导致服务机namenode继续保存 再次开启主机hadoop,使用hdfs查看hdfs根目录的时候显示访问被拒 解决方案 1.主机再次开启hadoop并继续执行关闭 2.服务器再次开启hadoop并继…...

[Mac] 安装paddle-pipelines出现 ERROR: Failed building wheel for lmdb

今天在mac换了新系统&#xff0c;然后重新安装paddle-piplines的时候出现了下面的问题&#xff1a; xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrunerror: comma…...

LED灯亮灭

.text .global _start _start: 设置GPIO寄存器的时钟使能  RCC_MP_AHB4ENSETR[4]->1 0x50000a28LDR R0,0x50000A28LDR R1,[R0] 从R0为起始地址的&#xff14;个字节数据取出放入R1中ORR R1,R1,#(0x1<<4) 第四位设置为1STR R1,[R0] 写回LDR R0,0x5000…...

Acwing.143 最大异或对(trie树)

题目 在给定的N个整数A1&#xff0c;A2 . …Ax中选出两个进行xor(异或)运算&#xff0c;得到的结果最大是多少? 输入格式 第一行输入一个整数N。 第二行输入N个整数A1~AN。 输出格式 输出一个整数表示答案。 数据范围 1 ≤N ≤105,0≤A<231 输入样例: 3 1 2 3输出样…...

day10.8ubentu流水灯

流水灯 .text .global _start _start: 1.设置GPIOE寄存器的时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000a28LDR R0,0X50000A28LDR R1,[R0] 从r0为起始地址的4字节数据取出放在R1ORR R1,R1,#(0x1<<4) 第4位设置为1STR R1,[R0] 写回2.设置PE10管脚为输出模式 G…...

transformer系列5---transformer显存占用分析

Transformer显存占用分析 1 影响因素概述2 前向计算临时Tensor显存占用2.1 self-attention显存占用2.2 MLP显存占用 3 梯度和优化器显存占用3.1 模型训练过程两者显存占用3.2 模型推理过程两者显存占用 1 影响因素概述 模型训练框架&#xff1a;例如pytorch框架的cuda context…...

Docker项目部署

目录 一、前端项目部署 1、上传文件 2、开启容器 3、测试 二、后端项目部署 1、打包java项目 2、将jar包和Dockerfile文件长传到Linux系统 3、构建镜像 4、开启容器 5、测试 三、DockerCompose快速部署 基本语法 一、前端项目部署 1、上传文件 里面包括页面和配置文…...

vue3实现文本超出鼠标移入的时候文本滚动

判断文本长度是否大于容器长度 鼠标移入的时候判断&#xff0c;此处使用了tailwindcss&#xff0c;注意一下要设置文本不换行。 <divref"functionsItems"mouseenter"enterFunctionsItem($event, index)"><img class"w-5 h-5" :src&quo…...

光伏系统MPPT、恒功率控制切换Simulink仿真

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

mysql双主互从通过KeepAlived虚拟IP实现高可用

mysql双主互从通过KeepAlived虚拟IP实现高可用 在mysql 双主互从的基础上&#xff0c; 架构图&#xff1a; Keepalived有两个主要的功能&#xff1a; 提供虚拟IP&#xff0c;实现双机热备通过LVS&#xff0c;实现负载均衡 安装 # 安装 yum -y install keepalived # 卸载 …...

怎样快速掌握mGBA测试套件:5个专业技巧确保模拟器稳定性

怎样快速掌握mGBA测试套件&#xff1a;5个专业技巧确保模拟器稳定性 【免费下载链接】mgba mGBA Game Boy Advance Emulator 项目地址: https://gitcode.com/gh_mirrors/mg/mgba mGBA作为一款开源的高精度Game Boy Advance模拟器&#xff0c;其测试套件是确保模拟器稳定…...

ESP8266 入门指南 — 从零开始烧录AT固件

1. 为什么需要烧录AT固件 第一次拿到ESP8266模块时&#xff0c;很多朋友会直接尝试用串口发送AT指令&#xff0c;结果发现模块毫无反应。这种情况我遇到过太多次了&#xff0c;根本原因在于模块没有预装AT固件。虽然部分商家会预先烧录好&#xff0c;但根据我的经验&#xff0c…...

Windows性能优化:任务管理器深度使用指南

Windows性能优化&#xff1a;任务管理器深度使用指南Windows系统运行缓慢、卡顿&#xff1f;系统自带的任务管理器是诊断和解决性能瓶颈的强大工具。本文将带你深度挖掘Windows任务管理器的各项功能&#xff0c;重点介绍如何利用它进行进程管理、性能监控、启动项优化等操作&am…...

VMware环境部,如何确认VM是安装成功

查看虚拟网卡安装完成VM&#xff0c;创建好虚拟机之后&#xff0c;在主页面&#xff0c;选择编辑--虚拟网络编辑器--查看子网地址查看windows网络信息打开windows命令行窗口&#xff0c;输入ipconfig查看是否 有VMnet1 和 VM net8&#xff0c;且IPV4地址跟VM平台上的子网地址前…...

Shell脚本实战指南:从零基础到自动化高手

1. Shell脚本入门&#xff1a;从Hello World到实战 第一次接触Shell脚本时&#xff0c;我和大多数人一样&#xff0c;被那些神秘的符号和命令搞得一头雾水。直到我意识到&#xff0c;Shell脚本其实就是把平时在终端里手动输入的命令&#xff0c;写进一个文件里自动执行。举个例…...

让Apple触控设备在Windows系统完美运行的驱动解决方案

让Apple触控设备在Windows系统完美运行的驱动解决方案 【免费下载链接】mac-precision-touchpad Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad 项目地址: https://gitcode.com/gh_mirrors/ma/mac-precision-touchpad 当你在Wi…...

深入解析振动传感器:从原理到应用的全面指南

1. 振动传感器入门&#xff1a;从"感觉"到"测量"的跨越 你有没有想过&#xff0c;为什么手机横屏时画面会自动旋转&#xff1f;为什么智能手环能记录你的步数&#xff1f;这些看似简单的功能背后&#xff0c;都离不开一个关键元件——振动传感器。作为工业…...

ESLint-Plugin-React 终极配置指南:如何创建适合不同团队的个性化规则组合

ESLint-Plugin-React 终极配置指南&#xff1a;如何创建适合不同团队的个性化规则组合 【免费下载链接】eslint-plugin-react React-specific linting rules for ESLint 项目地址: https://gitcode.com/gh_mirrors/es/eslint-plugin-react ESLint-Plugin-React 是一个专…...

喜马拉雅音频下载工具:技术实现与高效使用指南

喜马拉雅音频下载工具&#xff1a;技术实现与高效使用指南 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 在数字化学习与娱乐场景…...

从RNN到Mamba:一个算法工程师的‘长文本’建模踩坑与选型指南

从RNN到Mamba&#xff1a;一个算法工程师的‘长文本’建模踩坑与选型指南 当处理长达数万token的日志序列时&#xff0c;传统RNN的梯度消失问题让模型难以捕捉跨时段的异常模式&#xff0c;而Transformer的二次方复杂度又让显存迅速耗尽。这种困境促使我开始系统评估结构化状态…...