Python 错误与异常详解

在编程的世界里,我们经常会遇到各种阻碍程序运行的绊脚石。错误是程序中导致其停止执行的问题。另一方面,当某些内部事件改变了程序的正常流程时,就会引发异常。今天,让我们一起深入探讨这些概念,看看如何在 Python 中识别和处理它们。

Python 中的语法错误

当代码不符合 Python 的规则时,就像在英语中使用了不正确的语法一样,就会发生语法错误。Python 会在运行程序之前停下来并指出问题所在。

示例 1 :在这个例子中,代码返回了一个语法错误,因为 if 语句后面缺少了一个冒号(:)。正确的语法要求使用冒号来指示如果条件为真时要执行的代码块的开始。

Python


CODEBLOCK_e7b63bda

输出

!Output3467语法错误

示例 2: 此代码返回了一个 IndentationError(缩进错误),因为 Python 期望在 if 语句之后有一个缩进的代码块,但该块内的语句没有正确缩进。

Python


CODEBLOCK_057d22f2

输出

!Output缩进错误

Python 逻辑错误(异常)

逻辑错误是程序中微妙的 Bug,它允许代码运行,但会产生不正确或非预期的结果。这些错误通常更难检测,因为程序不会崩溃,但输出结果却不是我们预期的。

逻辑错误的特征

  • 无语法错误: 代码可以顺利运行。
  • 输出不符合预期: 程序产生的结果不是程序员想要的。
  • 难以检测: 这些错误可能很棘手,因为代码本身没有明显的问题。
  • 原因: 逻辑缺陷、错误的假设或操作符使用不当。

示例:

Python


CODEBLOCK_92edf1e5

输出

29.0

解释: 预期的输出是 a 的平均值应该是 30,但程序输出了 29.0。发生逻辑错误是因为公式 b/ len(a) – 1 错误地减去了 1,导致了不正确的结果。正确的公式应该是 b / len(a)

常见的内置异常

除了上述提到的异常之外,还有一些常见的内置异常:

异常

描述

IndexError

当检索到错误的列表索引时发生。

AssertionError

当 assert 语句失败时发生。

AttributeError

当属性分配失败时发生。

ImportError

当找不到导入的模块时发生。

KeyError

当找不到字典的键时发生。

NameError

当变量未定义时发生。

MemoryError

当程序内存不足时发生。

TypeError

当函数和操作应用于不正确的类型时发生。> 注意: 欲了解更多信息,请参阅 Python 中的内置异常

错误处理

Python 提供了使用 try、except 和 finally 块来处理错误和异常的机制。这允许我们对错误进行优雅的处理,而不会导致程序崩溃。

示例 1: 这个例子展示了 try、except 和 finally 如何处理错误。try 运行有风险的代码,except 捕获错误,而 finally 无论如何都会运行。

Python


CODEBLOCK_d3854352

输出

code start
an error occurs
GeeksForGeeks

解释:

  • try 块 运行代码,如果发生异常(例如 1 / 0 引发 ZeroDivisionError)则抛出该异常。
  • except 块 捕获异常,在发生错误的情况下打印 "an error occurs"。
  • finally 块 总是会执行,打印 "GeeksForGeeks" 以标记执行结束。

示例 2: 这个例子展示了 try 和 except 如何处理自定义错误。try 检查一个条件,如果失败则引发 ValueError,except 捕获并打印错误消息。

Python


CODEBLOCK_31681588

输出

please add money

解释:

  • try 块 设置 a = 1999,如果 a < 2999 则引发 ValueError,否则打印 "Eligible"。
  • except 块 捕获 ValueError 并打印 "please add money"。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/49152.html
点赞
0.00 平均评分 (0% 分数) - 0