【python】异常处理及程序调试(一)

news2024/11/16 13:44:07

在这里插入图片描述

异常类和异常处理

一、程序的错误类型

  • 语法错误:不符合语法规则而产生的错误,如:标识符命名错误,缩进错误,访问未定义的变量等。这类错误在编辑或解释时就会被检测出来,产生这类错误,程序将会终止,无法运行。
  • 运行中错误:代码编写时没有语法错误,在运行过程中发生错误,例如:除数为0、索引下标越界、数据类型不匹配,要打开的文件不存在等。出现这类错误时,系统会终止程序运行,抛出异常。
  • 逻辑错误:程序设计或代码编写中的逻辑错误,虽然语法都正确,程序也能正常运行,但是运行的结果是错误的。

异常主要是指运行中产生的错误

二、异常和异常类

1.异常概述

导致程序中断运行的错误称为异常(Exception) 异常是一个事件,该事件会在程序执行过程中发生,影响程序的正常执行。当Python程序发生异常时需要捕获处理它,否则程序会终止执行。

2.异常类

Python定义了一些异常类,配合一定的机制在Python中处理程序中的各种异常。这些类的基类都是BaseException。

三、异常处理

Python中使用try-except语句来处理异常。

1.处理格式

try-except语句的格式如下:

try:
    代码块
except 异常类型1:
    处理异常1
except 异常类型2:
    处理异常2
except (异常类型3, 异常类型4):
    处理异常3和4
else:
    没有异常时执行
finally:
    无论是否有异常都执行

2.简单举例

代码

list1 = [1,1,2,3,5,8]
try:
    print(list1[8])
except IndexError as e:
    print("列表索引超出范围!")

执行结果
在这里插入图片描述

3.整除程序的分类异常处理

x,y = eval(input("请输入两个整数: "))
try:
    z = x / y
    print("z =",z)
except TypeError as e1:
    print("数据类型异常:",e1)
except ZeroDivisionError:
    print("除数为零异常!")
except:
    print("程序运行异常!")
else:
    print("程序执行正确!")

执行结果

在这里插入图片描述

x,y = map(int,input("请输入两个整数: ").split())

在这里插入图片描述

4.异常抛出

抛出异常由raise语句执行,raise的一般格式如下:

raise [Exception [,args [,traceback]]]
  • Exception为异常的类型。
  • args为用户提供的参数,可选。
  • traceback跟踪异常对象,可选。

5.异常抛出举例

定义一个函数判定传入的参数是否为大于等于0的整数:如果是,则输出该整数;否则,抛出异常。

代码:

def greaterZero(n):
    if n < 0:
        raise Exception("您传入了一个小于零的整数!")     	#抛出异常.
    else:
        print("n =",n)
try:
    x = int(input("请输入一个整数: "))
    greaterZero(x) 						#调用函数.
except Exception as e:
    print(e)

在这里插入图片描述

四、断言语句

1.概述

assert断言语句是一种在程序测试中比较常用的技术,常用于在程序的某个位置判断是否满足某个条件。
assert语句的一般格式为:

  assert expression[,arguments]
  • expression是结果为布尔值的表达式。
  • arguments为参数,一般为错误提示信息,可选。

2.举例

x = -2
assert x >= 0,"x小于0" 	#表达式为False,触发异常.

在这里插入图片描述

x = 2
assert x >= 0,"x小于0" 	#表达式为True,不触发异常.

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

node.js+uni计算机毕设项目基于微信小程序点餐与结账系统LW(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等…

2023跨年代码(烟花+自定义文字+背景音乐+雪花+倒计时)

2023年快要到来啦&#xff0c;很高兴这次我们又能一起度过~ 目录 一、前言 二、跨年烟花 三、效果展示 倒计时 2023​编辑 兔圆圆​编辑 四、编码实现 index.html 烟花&#xff0c;雪花&#xff0c;背景音乐&#xff0c;页面样式 index.js 自定义文字 五、获取代码 需…

算法 | 如何通过Math.random()方法实现X平方或更多次方的概率?

前言 本文主要介绍Java中Math.random()方法以及该方法的简单应用。 每种语言都有随机方法&#xff0c;在Java中的随机方法有Math.random()方法、Random类。 Math.random Math.random()方法的返回值的是double类型&#xff0c;其返回值的范围为[0,1)&#xff0c;包含0&#…

每日笔记

下周要做一个hmi获取登录码、小程序码的新接口&#xff0c;需要用到新的知识来实现这个功能 接口英文名 getUnlimitedQRCode 功能描述 该接口用于获取小程序码&#xff0c;适用于需要的码数量极多的业务场景。通过该接口生成的小程序码&#xff0c;永久有效&#xff0c;数量…

Es客户端学习

版本&#xff1a;opensearch-rest-high-level-client-2.3.0.jar&#xff0c;httpcore-nio-4.4.11.jar&#xff0c;httpasyncclient-4.1.4.jar 问题背景 初始化es索引逻辑是监听大数据团队消息&#xff0c;然后异步写入es(org.opensearch.client.RestHighLevelClient#bulkAsyn…

七、Kubernetes1.25应用部署、发布的两种方式

1、概述 通过现代的 Web 服务&#xff0c;用户希望应用程序能够 24/7 全天候使用&#xff0c;开发人员希望每天可以多次发布部署新版本的应用程序。 容器化可以帮助软件包达成这些目标&#xff0c;使应用程序能够以简单快速的方式发布和更新&#xff0c;而无需停机。这段话是Ku…

智子商城项目实践开发文档

ZutShop Junior practical training project 在csdn暂存一下开发文档 本人大三做的实训项目&#xff0c;前后端分离。 后端&#xff1a;https://github.com/roydonGuo/ZutShop 前端使用Vue&#xff0c;前端项目地址&#xff1a;https://github.com/roydonGuo/ZutShop-Vue 0. …

python利用json和pyecharts画折线图实例

目录 一.json模块对数据进行处理 二.利用pyecharts画折线图 三.利用pyecharts画美、日、印三国家折线图 四.本文数据集 注&#xff1a;本次实验的数据在文章最后面&#xff0c;我已上传至百度网盘 一.json模块对数据进行处理 上面三个txt文本是这三个国家疫情爆发相关的数据 …

linux有磁盘空间却显示不足 linux中inode使用率过高处理办法

linux中inode使用率过高处理办法 前几天收到监控告警&#xff0c;说Inode节点空间不足&#xff0c;之前没处理过这种问题&#xff0c;所以记录一下处理过程&#xff0c;便于以后查阅。 Inode使用率高并不会影响系统正常运行和新文件的创建&#xff0c;但是当使用率达到100%的…

【Linux】Linux编译器gcc/g++的使用

今天不学习&#xff0c;明天变垃圾。 文章目录一、程序的翻译过程1.预处理&#xff08;1.2.3把你的代码编译成二进制代码&#xff09;2.编译&#xff08;C语言 > 汇编语言&#xff09;3.汇编&#xff08;无法被执行的二进制文件&#xff0c;为什么捏&#xff1f;&#xff09…

腾讯云Windows 轻量应用服务器如何搭建 FTP 服务?

本文档介绍如何在 Windows 操作系统的轻量应用服务器上通过 IIS 搭建 FTP 站点。 本文搭建 FTP 服务组成版本如下&#xff1a; Windows 操作系统&#xff0c;本文以系统镜像 Windows Server 2012 为例。IIS&#xff1a;Web 服务器&#xff0c;本文以 IIS 8.5 为例。 步骤1&am…

自行车在线租赁管理系统的设计与实现

自行车在线租赁管理系统 摘 要 随着Internet的不断发展&#xff0c;在线租赁在现实生活中的使用和普及&#xff0c;自行车在线租赁行业成为近年内出现的一个新行业&#xff0c;并且能够成为大众广为认可和接受的行为和选择。设计自行车在线租赁管理系统的目的就是借助计算机…

(四)汇编语言——简单程序

目录 编写程序的工作过程 编写汇编源程序 伪指令 汇编指令 注释 编写步骤 编译连接 编译 连接 运行 总结 编写程序的工作过程 接下来&#xff0c;我们简单介绍一下一个汇编程序&#xff0c;从写出到最后执行&#xff0c;他到底经历了哪些步骤。 编写汇编源程序 首先…

vue3 antd项目实战——修改table表格的默认样式(一)调整table表格每行(row)行高过高问题

vue3 antd项目实战——修改ant design vue table组件的默认样式&#xff08;调整每行行高&#xff09;知识调用场景复现实际操作解决a-table表格padding过宽知识调用 文章中可能会用到的知识链接vue3ant design vuets实战【ant-design-vue组件库引入】css样式穿透&#xff08;…

node.js+uni计算机毕设项目基于微信小程序的房屋交易平台(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等…

智能超表面(RIS)辅助双功能雷达和通信波束形成设计(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 智能超表面&#xff0c;也叫做“可重配智能表面”&#xff0c;或者“智能反射表面”&#xff0c;英文为RIS&#xff08;Reconf…

springboot消息

发送短信的简单原理 activemq 5.17 版本的 需要java11 环境 mq 网页版本控制台 账号密码为admin 指定发送的名 即上图的默认名为itheima 监听器 自动监听消息 接受 如果接受到消息 还想再其他地方使用 可以使用sendto 使用管理员权限 登录 然后列出插件 安装插件 r…

Java 注解 自定义注解 注解的解析

目录 一、认识Java自带注解 二、自定义注解 1、认识元注解 2、自定义注解 3、注解的使用 4、反射解析注解 一、认识Java自带注解 jdk中自带了一些注解&#xff0c;如下四个&#xff1a; Override类方法的的重写注解Deprecated类或方法被废除的注解FunctionalInterface函…

数据结构---串

&#xff08;一&#xff09;串的基本概念 串&#xff08;string或字符串&#xff09;是由零个或多个字符组成的有限序列&#xff0c;一般记为&#xff1a;s′a1a2…a′n(n≥0) 其中&#xff0c;s是串的名称&#xff0c;用单括号括起来的字符序列是串的值; ai(1≤i≤n)ai(1≤i…

CSS优先级CSS盒子模型

1、CSS继承 文字相关的样式可以被继承【作用在父元素上面&#xff0c;子元素可以继承】布局相关的样式不可以被继承【可以通过inherit值进行继承】 2、CSS优先级 书写了相同样式时&#xff0c;后写的样式优先级较高当内部样式和外部样式有相同的样式时&#xff0c;后写的样式…