Python基础总结之异常、调试代码第十二天开始!

基于STM32的宠物智能照护嵌入式系统设计 嵌入式系统是实现物联网终端设备本地化感知、决策与执行的核心技术载体,其关键在于多传感器融合、低功耗执行控制与轻量级云边协同。本文围绕环境监测(温湿度、烟雾、余粮)、机电执行(步进电机食盘、继电器风扇)和可靠通信(MQTT+ESP8266)三大技术主线,深入解析STM32F103在资源约束下的外设调度策略、ADC采样抗干扰设计、DHT11时序精准控制及HX711称重滤波算法等工程实践要点。系统强调本地闭环优先原则,确保离线基础功能可用,同时通过阿里云IoT平台实现远程监控与告警联动,为中小型智能硬件项目提供可 阅读详情

年薪20万的梦想,加油!

我们在写代码的时候,控制台经常会报错,因为某种错误,导致我们的程序停止,且不再运行下面的代码。

我们看一个错误的代码示例:

def add_1():     #没有参数
    print('我出错了')        #不会被执行
def add_2():           #函数二调用函数一
    print('第二个函数调用函数一,并给他一个参数')
    add_1(4)     #函数一没有参数,所以有会报异常,并终止,不会执行函数一里面的代码
def add_3():           #函数三调用函数二
    add_2()
d = add_3()       #调用函数三

Python资源共享群:484031800

 

 

 

 

 

看完截图,可以理解在函数调用的路径中,控制台显示的调用过程很清晰,这个过程就是函数调用栈的概念,它可以直接找到出错的地方。因为定义的函数add_1,不需要任何参数。

但是在调用的时候传入了一个参数值4,所以导致了程序停止,函数add_1里面的print语句没有被执行。

当我们在控制台看到Traceback出现,就说明程序有异常出现,异常就是最下面的TypeError。它只是异常的一种,如果我们没有对异常进行捕获处理,程序就会停止,且后面的代码都不会再执行。

我们可以使用 try...except...finally... 这样的方法来捕获异常,和处理异常。

 1 def add_1():     #不需要传入参数
 2     print('我出错了')        #不会被执行
 3 
 4 def add_2():           #函数二调用函数以
 5     print('第二个函数调用函数一,并给他一个参数')
 6     try:
 7         add_1(4)       #我们知道在这里,传参的时候会导致错误,所以我们在这里捕获异常。
 8     except :     #except 后面不添加任何错误类型,表示捕获所以异常类型。再不知道是什么类型的异常,导致程序停止,可以用它来处理。
 9         print('捕获了所有异常,不论什么异常导致')
10 
11 def add_3():
12     add_2()
13 d = add_3()       #调用函数三

 

 

 

 

 

 

当我们不知道哪里异常的时候,我们可以将try...except...的范围先放大,然后慢慢缩小。

1 try:
2     a = ['a','b',1,2]    #创建一个列表,变量是a,指向列表
3 
4     print(c)        #打印出错变量c,会出现一个未声明对象的错误:NameError,代码中的变量c并没有指向任何对象
5 except TypeError:   #TypeError是类型异常的错误,我们捕获的异常和程序出现的异常不一致,所以捕获是不成功的
6     print('捕获异常')

 

 

 

 

 

 

从图中发现我们捕获的异常和出现的异常不一致,所以异常的捕获是失效的,python 中有很多异常类型,如果不指定用哪个类型的异常捕获,那么就直接用案例一的方法,捕获所有异常,我们可以这样实现代码:

except Exception: 也可以直接写成  except: 不加后面的Exception,也代表捕获所有的异常,两种格式。

1 try:
2     a = ['a','b',1,2]    #创建一个列表
3 
4     print(c)        #打印出错变量c,会出现一个未声明对象的错误:NameError,因为列表的变量是a
5 except Exception:   #Exception,代表捕获所有类型的异常
6     print('捕获所有类型的异常')

 

 

 

 

 

 

如果我们程序运行到这里的时候,我们知道一般会出现哪几种情况,我们可以连续使用几个except代码块儿,分别捕获不同的异常。当执异常产生了,并且出现的异常类型是我们捕获的except代码块儿中的一个类型,那么所捕获的错误类型就会执行相应的代码,而不是对应的该异常的代码块,因为捕获的异常类型不匹配,所以它们对应的代码不会被执行。

1 try:
2     a = ['a','b',1,2]    #创建一个列表
3 
4     print(c)        #打印出错变量c,会出现一个未声明对象的异常报错:NameError,因为列表的变量是a
5 
6 except TypeError:
7     print('捕获 TypeError 类型异常')
8 except NameError:   #捕获NameError类型异常
9     print('捕获 NameError 类型异常')

 

 

 

 

 

 

我们知道了代码停止运行的异常类型,我们才能根据异常的类型去修改调试我们的代码。接下来我们再看看finally语句。finally语句,不管是否有异常,我们都有执行一段代码,比如,即使读取文件出现异常,那么我们也要执行后面的代码,那么我们就可以用finally这个关键字实现。

 1 import os                                   #导入os模块
 2 try:
 3     os.chdir(r'C:\Program Files\tools')         #切换到指定的路径目录
 4     print(os.listdir(os.getcwd()))
 5 
 6     file_1= open(r'C:\Program Files\tools\ffff.txt')   #我们的目录中没有ffff.txt文件
 7 
 8 except FileNotFoundError:                             #捕获未找到文件的异常报错
 9     print('未找到文件 FileNotFoundError')
10 
11 finally:                                             #但是下面的代码我们还是想执行
12     print('为了证明执行力finally的代码')

 

 

 

 

 

 

捕获异常的初级使用方法大概就是这样捕获了。下面附上常见的异常类型, 多多敲击代码,出错后要尝试根据错误的提示,去修改代码,这也是一种成长~~~~~

1.AssertionError:当assert断言条件为假的时候抛出的异常

2.AttributeError:当访问的对象属性不存在的时候抛出的异常

3.IndexError:超出对象索引的范围时抛出的异常

4.KeyError:在字典中查找一个不存在的key抛出的异常

5.NameError:访问一个不存在的变量时抛出的异常

6.OSError:操作系统产生的异常

7.SyntaxError:语法错误时会抛出此异常

8.TypeError:类型错误,通常是不通类型之间的操作会出现此异常

9.ZeroDivisionError:进行数学运算时除数为0时会出现此异常

Python离线断网情况下安装numpy、pandas和matplotlib等常用第三方包 联网情况下在命令终端CMD中输入“pip install numpy”即可自动安装,pandas和matplotlib同理一样方法进行自动安装。 工作的电脑不能上外网,所以不能通过直接输入pip命令来安装。 环境:电脑上已经安装了Python(没有安装的请参考其他教程)。 Python离线断网情况下安装numpy、pandas和matplotlib等常用第三方包的步骤如下: ... 阅读详情

相关推荐

从零开始用STM32驱动RGB屏:配置PCLK、DE同步信号的避坑指南

本文详细介绍了如何使用STM32驱动RGB接口LCD屏幕,重点解析了PCLK配置、同步信号极性和DE使能等关键参数的设置方法。通过实战代码示例和常见问题排查指南,帮助开发者避免常见配置错误,实现稳定的显示效果。特别针对800x480 IPS屏提供了优化建议和调试技巧。

sky77的博客 541

c++ 未捕获的异常_Python基础总结之异常、调试代码第十二天开始!

年薪20万的梦想,加油!我们在写代码的时候,控制台经常会报错,因为某种错误,导致我们的程序停止,且不再运行下面的代码。我们看一个错误的代码示例:def add_1(): #没有参数 print('我出错了') #不会被执行 def add_2(): #函数二调用函数一 print('第二个函数调用函数一,并给他一个参数') add_...

weixin_39632471的博客 155

Ubuntu16.04下禁用scp、sftp和winscp

在上一篇博文《Ubuntu16.04 搭建FTP服务器,设置用户权限为只许上传、禁止下载和删除》中,我讲述了Ubuntu16.04下配置FTP,并且设定用户权限为只能上传数据,禁止下载和删除数据。这算在FTP层面封堵了服务器数据泄露的途径。 但是,Ubuntu系统的scp和sftp还是起作用的,理论上只要能用本地机器ping通服务器,就可以用scp和sftp下载数据,这还是存在数据泄露可能的,所...

HPC&Geophysics攻城狮 5737

Python调试、异常、测试

调试    1.print()    用print()把可能有问题的变量打印出来,但是用print()最大的坏处是将来还得删掉它,想想程序里到处都是print(),运行结果也会包含很多垃圾信息    2.断言    凡是可能有问题的变量,都可以用断言(assert)来替代:def foo(s): n = int(s) assert n != 0, 'n is zero!' ...

u012084802的博客 2万+

【ESP32】SPI SRAM memory test fail。External RAM failed memory test!

log日志报错如下:这两条报错信息表明外部 SPI SRAM(静态随机存取存储器)的内存测试失败。

weixin_56217406的博客 1024

YOLOv5源码逐行超详细注释与解读(5)——配置文件yolov5s.yaml

全网最详细的YOLOv5源码解读之配置文件yaml。逐行注释,逐句讲解,一文带你了解yaml。小白必看!

路人贾的博客 1万+

Python基础总结之异常、调试代码第十二天开始(新手可相互督促)

年薪20万的梦想,加油! 我们在写代码的时候,控制台经常会报错,因为某种错误,导致我们的程序停止,且不再运行下面的代码。 我们看一个错误的代码示例: def add_1(): #没有参数 print('我出错了') #不会被执行def add_2(): #函数二调用函数一 print('第二个函数调用函数...

ZZC258963的博客 224

使用 ABAP Development Tool 登录 SAP BTP ABAP 环境时,遇到弹出框应该怎么办?

但在实际环境里,隐私模式、第三方 Cookie 禁止、跨站追踪限制、缓存代理误命中、混合内容拦截等因素,都可能让这条跳转链路被打断。等),浏览器会弹出系统原生登录框,请求用户输入账号和口令或做集成认证。只要它们在响应头里出现,浏览器就会理直气壮地弹框,这是协议层的强约定。,最终弹出原生登录框。前端与网关领域有个通用的经验规则:如果你看到了原生登录框,而期望的是带样式的。环境里的登录方式表述为基于浏览器的前端认证,也就是这类重定向式的交互。环境的具体落地,拆出几类常见诱因与排障路径,并穿插真实世界的案例。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 373

暑假Python基础整理 --异常处理及程序调试

本文介绍了Python中的异常处理与程序调试方法。首先列举了常见异常类型如NameError、IndexError等及描述。重点讲解了异常处理语句:try-except用于捕获处理异常,可组合else和finally语句;raise用于主动抛出异常。在程序调试部分,详细说明了使用IDLE调试器的步骤,包括断点设置、变量查看和调试按钮功能。还介绍了assert语句的条件验证调试方法。这些技巧能帮助开发者有效定位和处理程序错误,提高代码质量。

2401_86544210的博客 700

线结构光相机原理详解以及精度控制总结

摘要:线阵结构光相机是工业三维检测的核心设备,结合线阵相机的高分辨率与结构光的主动三维成像能力。其工作原理基于线激光投射、逐线扫描、亚像素级条纹提取及三角测量法实现三维重建。精度受硬件、校准、环境和算法四因素影响,需通过优化硬件选型(如小像元相机、窄线宽激光)、精准校准(相机内参、激光平面)、环境控制(遮光、隔振、恒温)及算法优化(Steger算法、点云后处理)来提升。典型应用(卷材、轨道检测)中深度精度可达5-20μm,需根据场景需求平衡参数配置。

start_up_go的博客 940

【全网首发】2026华为OD双机位C卷 机考真题题库含考点说明以及在线OJ (Java)

如果你收到的是双机位C卷考试通知,需要针对性地调整备考策略。自2025年11月19日起,华为OD机试已正式从双机位A卷切换至。复杂度明显提升,需要组合多个算法点。题面相对简单,直接考查编程基本功。考查问题分析、算法选择和优化能力。通常为1-2个核心算法点的应用。

算法大师! 169

12、Python 异常处理与调试技巧

本文将系统讲解Python异常处理与调试的核心技术,涵盖从基础语法到生产级调试的完整知识体系,通过20+个代码示例揭示异常处理的深层逻辑,并提供可运行于PyCharm/VSCode的完整代码段。

朗朗的博客 1368

31、摩擦学中的材料选择

本博文深入探讨了摩擦学应用中材料选择的重要性,分析了材料的机械、物理和化学属性对摩擦学性能的影响。同时介绍了材料匹配原则、处理方法及表面涂层技术,以优化耐磨性和抗腐蚀性。通过实际案例和评估方法,为读者提供了系统化的材料选择流程和决策依据。

juice的博客 249

【Python】从基础到进阶(七):深入理解Python中的异常处理与调试技巧

异常(Exception)是在程序运行过程中发生的错误,它会中断程序的正常执行流程。Python中的异常机制允许我们捕获这些错误,并通过适当的方式进行处理,避免程序崩溃。

Allen- 1876

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

python调用函数获取最开始的异常_Python基础总结之异常、调试代码第十二天开始(新手可相互督促)...

年薪20万的梦想,加油!我们在写代码的时候,控制台经常会报错,因为某种错误,导致我们的程序停止,且不再运行下面的代码。我们看一个错误的代码示例:def add_1(): #没有参数print('我出错了') #不会被执行def add_2(): #函数二调用函数一print('第二个函数调用函数一,并给他一个参数')add_1(4) #函数一没有参...

weixin_39851307的博客 125

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Python 异常处理及程序调试

然而,在编写复杂的应用程序时,错误和异常是难以避免的。BaseException 是所有异常的基类,常见的异常类型包括 Exception(通常用于捕获所有异常)和特定类型的异常,如 ValueError、TypeError 等。在 Python 中,异常是指在程序执行过程中发生的错误或意外情况。ExceptionType 是要捕获的异常的类型,可以是内置的异常类,也可以是自定义的异常类。finally 代码块中的代码会在 try 代码块执行结束后,无论是否发生异常都会被执行。在 try 代码块中,

m0_70911440的博客 1095

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Python打印异常的方法!

在 Python 编程中,异常是指程序执行过程中出现的错误或异常情况。当程序遇到异常时,为了更好地调试和定位问题,我们需要打印异常信息。本文将详细介绍如何在 Python 中打印异常,并提供一些示例和注意事项。

Everly_的博客 1576

【Python基础】异常捕获知识梳理

本文介绍了Python异常处理的全面指南,包含基本概念、语法结构(try-except-else-finally)、高级用法(异常链、上下文管理器)以及常见内置异常。文章强调具体优于笼统的捕获原则,提供了自定义异常的实现方法,并分享了异常处理最佳实践(资源清理、错误日志记录等)。最后指出异常处理应平衡健壮性与性能,避免在循环中过度使用。适合Python初学者系统学习错误处理机制,提升代码可靠性。另推荐作者相关Python学习专栏。

weixin_42636075的博客 1177

【Python基础教程】第九章:异常处理与调试

摘要:本文聚焦Python异常处理与调试技术,系统阐述健壮性编程核心技巧。深入解析try-except-finally异常捕获机制,结合文件读取权限异常等案例,展示其在实际场景中的应用;详细讲解自定义异常类的创建与继承方法,提升程序错误处理的针对性。同时,全面介绍pdb调试器的使用方式,通过实际操作演示定位错误的流程。通过概念讲解、丰富代码示例、配套练习题及答案,辅以流程图可视化逻辑,助力读者掌握异常处理与调试技能,有效提升Python程序的稳定性与可靠性。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1255

Python调试与异常处理的艺术

本文系统梳理 Python 调试与异常处理的实战方法,从精准异常捕获与异常链、顶层守护到语义化自定义异常,配合 print/assert 土法调试与 logging 进阶配置,覆盖并发场景的错误传播与重试策略,并给出可落地的代码示例与最佳实践清单,帮助你构建可维护、可定位、可恢复的高质量代码。

需要远程指导仿真实验、代码有问题的,请后台私信。 914

【自动化运维】Python异常处理与程序调试

异常处理是程序用于处理以外情况的代码段,而在代码编写的过程中,经常要进行代码的调试和测试工作。本章将介绍 Python 语言中的异常处理和程序调试的具体使用方法。

weixin_73059729的博客 1189

Python Jupyter Notebook 中的错误异常与代码调试

Python Jupyter Notebook 中的错误异常与代码调试 - Datacademy 数析学院 | Datartisan http://datacademy.io/lesson/65 Python Jupyter Notebook 中的错误异常与代码调试 首先我们定义两个函数,以便够造成一些错误和异常,方便来进行对于 Jupyter

sun_shengyun的专栏 4万+

Python基础入门——异常处理

异常是程序运行时发生的错误(比如除以 0、读取不存在的文件、输入非数字),如果不处理,程序会直接停止并抛出“异常信息”(Traceback)。# 没有异常处理,程序会崩溃异常处理就是“捕获”这些错误,让程序执行替代逻辑(比如提示用户“文件不存在”),而不是直接崩溃。Python 提供的内置异常(如ValueError)能满足大部分场景,但如果需要更具体的异常类型(比如“文件格式错误”“权限不足错误”),可以自定义异常类。

sinat_20277079的博客 927

【Python学习】Python异常处理及程序调试

本文系统介绍了Python异常处理与程序调试的核心知识。第一部分详细讲解异常概念、常见类型、处理语法(try-except-else-finally)及自定义异常的实现方法,强调针对性捕获异常和资源释放的重要性。第二部分全面解析程序调试技术,从基础print调试到高级pdb命令行调试和IDE图形化调试,提供实用技巧如条件断点设置和日志记录。第三部分通过文件读写综合案例,演示如何结合异常处理和调试技术解决实际问题。

大雨淅淅的博客 778

Python实战基础19-异常处理及程序调试

在程序运行过程中,经常会遇到各种各样的错误,这些错误统称为“异常”。这些异常有的是由于开发者将关键字敲错,这类错误产生的是SyntaxError:invalid syntax(无效语法),这将直接导致程序不能运行。这类异常是显式的,在开发阶段很容易被发现。还有一类是隐式的,通常和使用者的操作有关。

weixin_48719464的博客 1611

使用 pdb 来 debug 调试 python 程序

使用 pdb(Python Debugger)是 python 自带的,即内置的调试工具。调试 Python 源代码时,掌握基础命令和高级技巧可以大幅提高调试效率。以下是 全面的技术总结和高级技巧,涵盖从基础到进阶的调试方法。被调试源码:a.py。

eloudy的专栏 1298
上一篇: 基于Python和Xtrbackup的自动化备份与还原实现!
下一篇: Python 爬虫新手教程:破解验证码技术,识别率高达百分之80!
普通网友
博客等级 码龄7年 438粉丝 263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值