Python基础学习之try

ops/2024/9/25 11:13:42/

在Python编程中,异常处理是一种非常重要的编程技巧,它允许程序在运行时遇到错误或异常情况时能够优雅地处理,而不是直接崩溃。Python提供了try-except-finally结构来实现异常处理,使得程序能够在遇到错误时采取适当的措施,并继续执行后续的代码。

一、try块:尝试执行的代码

try块中包含了可能引发异常的代码。当Python解释器执行到try块时,它会尝试执行其中的代码。如果代码执行成功,那么程序将继续执行后续的代码;如果代码执行过程中出现了异常,那么解释器会立即跳出try块,并查找与之匹配的except块来处理异常。

示例代码:

try:  # 尝试执行的代码  x = 1 / 0  # 这将引发一个ZeroDivisionError异常  
except:  # 异常处理代码  print("发生了异常")

在上面的示例中,尝试执行除法运算 1 / 0,这将引发一个 ZeroDivisionError 异常。由于我们使用了try-except结构,当异常发生时,程序不会崩溃,而是会执行except块中的代码,打印出“发生了异常”。

二、except块:处理异常

except块用于捕获并处理try块中引发的异常。当try块中的代码引发异常时,Python解释器会查找与之匹配的except块,并执行其中的代码来处理异常。except块可以指定要捕获的异常类型,也可以不指定,以捕获所有类型的异常。

示例代码:

try:  # 尝试执行的代码  x = int(input("请输入一个整数:"))  y = 10 / x  
except ValueError:  # 处理ValueError异常  print("输入的不是一个有效的整数")  
except ZeroDivisionError:  # 处理ZeroDivisionError异常  print("除数不能为0")  
except:  # 处理其他类型的异常  print("发生了其他类型的异常")

上面的示例中,我们使用了多个except块来捕获不同类型的异常。如果用户输入的不是一个有效的整数,将引发 ValueError 异常;如果输入的整数为0,将引发 ZeroDivisionError 异常。根据异常的类型,程序会执行相应的except块中的代码来处理异常。

三、finally块:无论是否发生异常都会执行的代码

finally块中的代码无论是否发生异常都会执行。它通常用于执行一些清理操作,如关闭文件、释放资源等。无论try块中的代码是否成功执行,或者except块是否捕获到异常,finally块中的代码都会被执行。

示例代码:

try:  # 尝试打开文件  file = open("example.txt", "r")  # 读取文件内容  content = file.read()  # 执行其他操作...  
except FileNotFoundError:  # 处理文件未找到异常  print("文件未找到")  
finally:  # 关闭文件  file.close()

在上面的示例中,我们尝试打开一个文件并读取其内容。如果文件不存在,将引发 FileNotFoundError 异常。无论是否发生异常,finally块中的代码都会执行,确保文件被正确关闭。

总结:

try-except-finally结构是Python中异常处理的核心机制。通过合理地使用这些结构,我们可以编写出更加健壮和可靠的程序,能够在遇到错误时采取适当的措施,并继续执行后续的代码。掌握try的用法是Python编程中的一项重要技能,希望本文能够帮助你更好地理解和应用它。


http://www.ppmy.cn/ops/29312.html

相关文章

Vue入门篇:样式冲突scoped,data函数,组件通信,prop data单向数据流,打包发布

这里写目录标题 1.组件的样式冲突scoped2.data函数3.组件通信1.两种组件关系分类和对应的组件通信方案2.父子通信方案的核心流程 4.prop & data、单向数据流5.打包发布6.打包优化:路由懒加载 1.组件的样式冲突scoped 默认情况:写在组件中的样式会全局生效→因此很容易造成多…

模块化兼容性

模块化兼容性 由于webpack同时支持CommonJS和ES6 module,因此需要理解它们互操作时webpack是如何处理的 同模块化标准 如果导出和导入使用的是同一种模块化标准,打包后的效果和之前学习的模块化没有任何差异 不同模块化标准 不同的模块化标准&#x…

贪心算法 Greedy Algorithm

1) 贪心例子 称之为贪心算法或贪婪算法,核心思想是 将寻找最优解的问题分为若干个步骤 每一步骤都采用贪心原则,选取当前最优解 因为没有考虑所有可能,局部最优的堆叠不一定让最终解最优 v2已经不会更新v3因为v3更新过了 贪心算法是一种在…

代码随想录-算法训练营day24【回溯01:理论基础、组合】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第七章 回溯算法part01 今日内容:● 理论基础 ● 77. 组合 详细布置 理论基础 其实在讲解二叉树的时候,就给大家介绍过回溯,这次正式开启回溯算法,大家可以先看视频&a…

uniapp0基础编写安卓原生插件和调用第三方jar包和编写语音播报插件之使用jar包插件

前言 如果你不会编写安卓插件,你可以先看看我之前零基础的文章(uniapp0基础编写安卓原生插件和调用第三方jar包和编写语音播报插件之零基础编写安卓插件), 我们使用第三方包,jar包编写安卓插件 开始 把依赖包,放到某个模块的/libs目录(myTestPlug/libs) 还要到build…

SqlSessionFactory

在Java中,SqlSessionFactory是MyBatis框架中的一个重要类,它用于创建SqlSession对象。SqlSession是MyBatis框架中用于执行SQL语句的主要对象,它提供了对数据库操作的各种方法。 SqlSessionFactory的主要作用是创建SqlSession对象&#xff0c…

有哪些ai自动生成图片软件?AI绘画工具推荐

AI绘画工具是近年来快速发展的一种创新技术,它可以通过算法和机器学习技术来自动生成图片。那么又有有哪些ai自动生成图片软件呢?下面是小编给大家的AI绘画工具推荐。 一、爱制作AI 爱制作AI是一款多功能的人工智能助手,具备AI问答、AI写作、…

ThreeJS:项目搭建

介绍如何基于Vite、Vue、React构建ThreeJS项目。 Vite项目 1. 初始化项目,命令:npm init vitelatest, 2. 安装依赖,命令:npm install, 3. 启动项目,命令:npm run dev。 4. 样式初始…