查看原文
其他

Python入门教程16:错误和异常调试

作者一小红牛 我的Python教程 2024-01-14


Python,速成心法

敲代码,查资料,问度娘

练习,探索,总结,优化

1.Python 中常见的异常

  • Name error 尝试访问一个没有声明的变量引发的错误

  • Indexerror 索引超出序列范围引发的错误

  • Indentation error 缩进错误

  • Value error 传入的值错误

  • Exception 通用型异常对象

  • FileNotFoundError 找不到文件

  • KeyError 键异常

  • SyntaxError 语法错误

  • Keyerror 请求一个不存在的字典关键字引发的错误

  • IOError 输入输出错误(如要读取的文件不存在)

  • ImportError 当import 语句无法找到模块或from无法在模块中找到相应的名称时引发的错误

  • Attributeerror 尝试访问未知的对象属性引发的错误

  • TypeError 类型不合适引发的错误Memoryerror 内存不足Zerodivisionerror 除数为0引发的错误


2.try...except 语句:在Python 中,提供了try..except 语句捕获并处理异常,具体的语法格式如下:

try: block1 except [ExceptionName [ as alias]]: block2

参数说明:

☑block 1:表示可能出现错误的代码块。

☑ExceptionName [as alias ]:可选参数,用于指定要捕获的异常。其中,ExceptionName 表示要捕获的异常名称,如果在其右侧加上as alias ,则表示为当前的异常指定一个别名,通过该别名,可以记录异常的具体内容。

3.try...except ...finally 语句:完整的异常处理语句应该包含finally 代码块,其语法格式如下:

try: block1 except [ExceptionName [ as alias]]: block2finally:      block3

对于try..except ..finally 语句的理解并不复杂,它只是比try...except 语句多了一个finally 语句,如果程序中有一些在任何情形中都必须执行的代码,那么就可以将它们放在finally 代码块中。

4.使用raise 语句抛出异常

如果某个函数或方法可能会产生异常,但不想在当前函数或方法中处理这个异常,则可以使用raise 语句在函数或方法中抛出异常。Raise 语句的语法格式如下:

raise [ExceptionName[(reason)]]:


其中,ExceptionName [(reason )]为可选参数,用于指定抛出的异常名称以及异常信息的相关描述。如果省略,就会把当前的错误原样抛出。

5.使用assert 语句调试程序

Python 提供了assert 语句来调试程序,assert 语句的基本语法如下:

assert expression [,reason]

参数说明:

☑expression :条件表达式,如果该表达式的值为真时,什么都不做,如果为假时,则抛出AssertionError 异常。

reason :可选参数,用于对判断条件进行描述,为了以后更好地知道哪里出现了问题。


try: x = int(input("Enter a number: ")) y = 2 / x print("Result is:", y) except ZeroDivisionError as e: print("Error:", e) except ValueError as e: print("Error:", e) except Exception as e: print("Error:", e) else: print("No error occurred.") finally: print("Goodbye!")

下面是一个简单的例子,演示了如何使用 try...except 来捕获和处理异常:

try: x = int(input("Enter a number: ")) y = 2 / x print("Result is:", y) except ZeroDivisionError as e: print("Error:", e) except ValueError as e: print("Error:", e) except Exception as e: print("Error:", e) else: print("No error occurred.") finally: print("Goodbye!")

在这个例子中,我们尝试将一个字符串转换为整数,并计算它除以另一个整数的结果。如果除数为零,程序将引发一个名为 ZeroDivisionError 的异常。我们还定义了两个不同类型的异常:ValueError 和 Exception。如果发生其他类型的异常,我们将捕获它们并打印相应的错误消息。最后,我们使用 else 和 finally 语句来确保在发生任何异常时都会执行相应的处理代码。

完毕!!感谢您的收看

------------往期更多精彩内容------------

Python最新版本的安装教程(附详细图)

Pycharm的下载与安装方法(附教程图)

Pycharm初始化,新建一个python程序

Pycharm英文页界面,2种汉化的设置方法(教程附图)

Python常用的英文单词集合

Python基础教程:01代码的规范书写

Python基础教程:02内置函数的用法解析

Python基础教程:03运算符与表达式

Python基础教程:04流程控制语句

Python基础教程:05字符串String的用法解析

Python基础教程:06列表,元组,字典的用法

Python入门教程:07文件及目录操作

Python入门教程:08变量,保留字,字符串索引

Python入门教程:09常用的模块库

Python入门教程10:datetime的用法

Python入门教程:11推导式的写法

Python入门教程12:pip命令的使用

Python入门教程13:json的用法

Python入门教程14:高阶函数用法解析

Python入门教程15:面向对象编程思想

-------------------------------------------------

---------------Python源码集合---------------

Python源代码分享:01九九乘法表

Python源代码分享:02海龟画图五角星

Python源代码分享:03画一个奥运五环图

Python源码分享:04列表数据的奇偶求和

Python源代码分享:05使用turtle模块绘制一个彩色螺旋图案

Python源代码分享:06猜数字大小与剪刀石头布


继续滑动看下一个

Python入门教程16:错误和异常调试

作者一小红牛 我的Python教程
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存