Python语言学习笔记之六(程序调试及异常处理)

本课程对于有其它语言基础的开发人员可以参考和学习,同时也是记录下来,为个人学习使用,文档中有此不当之处,请谅解。

1、Python程序常见的错误

  1. 语法错误:不正确的缩进、未定义的变量、括号不匹配等.
  2. 运行时错误: 尝试访问不存在的文件、内存溢出等
  3. 类型错误: 将字符串与整数相加等.
  4. 逻辑错误: 程序没有按照预期的流程执行、条件判断不正确等.
  5. 输人错误: 无效的输入、输人的数据类型不正确等

1.1常见的错误-缩进错误

引发错误的原因:

  1. 未正确地缩进代码块:在Python中,代码块是通过缩进来区分的。例如,在i语句、循环、函数等中,代码块必须正确缩进。否则,将会引IndentationError.
  2. 混合使用不同的缩进方式:在Python中,可以使用空格或制表符(Tab) 进行缩进。但是混合使用这两种方式会导致IndentationError。因此,最好在整个项目中保持使用一种缩进方式
  3. 错谈的缩进级别:在嵌套代码块中,每一级的缩进必须正确对应。如果嵌套的代码块没有正确的缩进级别,将会引发IndentationError.
  4. 遗漏或添加了空格或制表符:在代码块中,每一行的缩进必须一致。如果某一行多添加或遗湄了空格或制表符,将会引发IndentationError.

1.2 常见的错误-类型错误

引发错误原因

  1. 将不同类型的值进行算术运算
  2. 使用None进行算术运算或比较将不同类型的值转换为预期类型.
  3. 当函数的期望类型与传递给它的实际类型不匹配时,也会引发TypeError.

1.3 常见的错误-索引错误

引发错误原因:

  1. 如果索引超出了序列的范围,将会引发IndexError.
  2. 尝试从一个空(没有元素) 的序列《如列表、元组等) 中获取元素时将会引发IndexError.
  3. 从字典中获取一个不存在的键时,将会引发KeyError.
  4. 在进行切片操作时,如果切片索引超出范围。将会引发IndexError.

1.4. 常见的错误-文件未找到错误

引发错误原因:

  1. 打开一个文件时,如果文件路径设置不正确,那么就会引发文件未找到错误。
  2. 打开一个不存在的文件时,Python将无法找到该文件,从而引发文件未找到错误。
  3. 打开的文件位于与当前工作目录不同的位置,你需要提供正确的相对路径.
  4. 在进行文件操作后,确保使用close()方法关闭文件,如果文件未正确关闭,那么在后续尝试访问或读取该文件时,可能会出现文件未找到错误.
  5. 如果Python进程没有足够的权限来访问指定的文件,也会引发文件未找到错误,

1.5 常见的错误提示词
​​​​​​​

​​​​​​​2、异常处理方法

2.1 第一种方法:try except

try except是一种Python中的异常处理结构,用于捕获和处理在程序执行过程中可能出现的异常

try 块中包含可能会引发异常的代码,而 except 块则用于捕获并处理这些异常。当在 try 块中执行代码时,如果发生了异常,程序会跳转到与该异常匹配的except 块进行处理。如果没有适当的 except 块来处理异常,异常将会继续向上传递,直到被顶层的exception handler (默认为 Python 的默认异常处理器)处理。

2.2 第二种方法:try except else

包含try,except和else三个部分。这种结构允许在try块中运行一段可能抛出异常的代码,如果异常被捕获,则执行except块中的代码,否则执行else块中的代码。

try块包含一段可能会抛出异常的代码,except块包含一段处理特定异常的代码。如果在try块中抛出了与except块中指定的异常类型相匹配的异常,那么就会执行这个except块中的代码。

else块包含一段正常情况下执行的代码。只有在try块中的代码成功执行,且没有抛出任何异常时,才会执行这个else块中的代码。

2.3 第三种方法:try except finally

try、except和finally 是 Python 中的异常处理语句,它们可以用来处理在代码执行过程中可能出现的异常情况。

try 语句块中包含可能会引发异常的代码,这些异常会被捕获并处理。在try 块中可以使用 except 语句来指定要捕获的异常类型,并在 except 块中编写相应的异常处理代码.

finally 语句块是可选的,它包含的代码无论是否发生异常都会被执行。这对于在异常处理后需要执行的清理操作非常有用,例如关闭文件或数据库连接等资源。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode(39)赎金信【哈希表】【简单】

目录 1.题目2.答案3.提交结果截图 链接: 赎金信 1.题目 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 magazine 中的每个字…

零基础自学编程,中文编程工具下载,中文编程工具构件之弹出菜单构件简介

一、前言: 零基础自学编程,中文编程工具下载,中文编程工具构件之弹出菜单构件简介 编程系统化教程链接 https://jywxz.blog.csdn.net/article/details/134073098?spm1001.2014.3001.5502 给大家分享一款中文编程工具,零基础…

Matlab 在一个文件中调用另一个文件中的函数

文章目录 Part.I IntroductionPart.II 方法Chap.I A 文件中只有一个函数Chap.II A 文件中有多个函数 Part.I Introduction 本文介绍一下在脚本文件 B 中调用文件 A 中的函数的方法。 Part.II 方法 目的:在文件B.m调用A.m中的函数 默认两个文件在一个文件夹下&…

各地级市2022年乡村振兴数据,字段列表详细可查

基本信息. 数据名称: 各地级市2022年乡村振兴数据 数据格式: Shp、excel 数据时间: 2022年 数据几何类型: 面 数据坐标系: WGS84坐标系 数据精度:市级 数据来源:网络公开数据 字段列表如下:(获取数据可搜“吧唧数据”…

大数据之 Hadoop

hadoop主要解决:海量数据的存储和海量数据的分析计算 hadoop发展历史 Google是hadoop的思想之源(Google在大数据方面的三篇论文) 2006年3月,Map-reduce和Nutch Distributed File System(NDFS)分别被纳入到Hadoop项目&#xff0c…

软件设计师——计算机网络(一)

📑前言 本文主要是【计算机网络】——软件设计师计算机网络的题目,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &#x1f304…

Django大回顾 -3 之响应对象、cbv和fbv、关于类中self是谁的问题、上传文件、模版

【1】isinstance方法 判断一个对象是否是一个已知的类型。 isinstance语法: isinstance(object,classinfo) object --------- 实例化对象 cassinfo ------- 可以是字节或间接类名、基本类型,或者由他们组成的元组 相同返回True,不…

Mac 浏览器下载的文件名总是「乱码」

如果可以实现记得点赞分享,谢谢老铁~ 本文所说的方法是在出现文件名乱码情况下,如何恢复文件名的正确中文名称,并非一劳永逸地避免乱码的出现。这是由于下载文件名称乱码的出现,往往是系统、浏览器、网站三方面因素共…

【Excel】WPS快速按行筛选过滤

用的筛选都是进行列数据过滤,那么遇到一个情况需要行数据过滤查看数据 行过滤 选中行,然后右键菜单,行筛选。 列过滤

量子芯片:引领计算技术的新篇章

量子芯片:引领计算技术的新篇章 引言 随着量子计算的飞速发展,量子芯片作为量子计算机的核心组件,日益受到人们的关注。量子芯片的出现,不仅有望推动计算技术的革新,更将在信息安全、药物研发、金融投资等领域掀起巨大的变革。在本篇博客中,我们将深入探讨量子芯片的原理…

linux用户组管理_创建删除密码修改

2.2 用户/组管理 2.2.1 用户 2.2.1.1 useradd:创建用户 添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。 useradd命令的基本语法如下: useradd 选项 用户名 常见选项参数&#xff…

如何保证缓存和数据库的双写一致性?

一、什么是数据库和缓存双写一致性? 在分布式系统中,数据库和缓存会搭配一起使用,以此来保证程序的整体查询性能。也就说,分布式系统为了缓解数据库查询的压力,会将查出来的数据保存在缓存中,下次再查询时…