020. 编写一个try-except块来捕获并处理除以零的错误

在 Python 中,除以零会引发 ZeroDivisionError 异常。为了捕获并处理这种错误,可以使用 try-except 块。以下是一个示例代码,展示如何捕获并处理除以零的错误:

示例代码

# 定义两个变量
numerator = 10
denominator = 0

try:
    # 尝试执行除法操作
    result = numerator / denominator
    print("结果是:", result)
except ZeroDivisionError:
    # 捕获除以零的错误
    print("错误:除数不能为零!")

运行结果

运行上述代码后,输出如下:

错误:除数不能为零!

代码解释

定义变量

  • 定义了两个变量 numeratordenominator,分别表示被除数和除数。

try

  • try 块中,尝试执行除法操作 numerator / denominator

  • 如果除法操作成功,将结果存储在变量 result 中并打印。

except

  • 如果在 try 块中发生了 ZeroDivisionError 异常,程序会跳转到 except 块。

  • except 块中,捕获并处理错误,打印一条错误消息。

扩展:动态输入

如果需要从用户那里动态获取输入并处理除以零的错误,可以使用 input() 函数:

# 从用户输入获取被除数和除数
numerator = float(input("请输入被除数:"))
denominator = float(input("请输入除数:"))

try:
    # 尝试执行除法操作
    result = numerator / denominator
    print("结果是:", result)
except ZeroDivisionError:
    # 捕获除以零的错误
    print("错误:除数不能为零!")

示例运行

假设用户输入如下内容:

请输入被除数:10
请输入除数:0

运行结果如下:

错误:除数不能为零!

注意事项

捕获特定异常

  • except 块中,指定了 ZeroDivisionError,这样只有当发生除以零的错误时才会捕获并处理。

  • 如果需要捕获其他类型的异常,可以添加更多的 except 块。

通用异常捕获

  • 如果需要捕获所有类型的异常,可以使用 except Exception as e
except Exception as e:
    print("发生了一个错误:", e)

finally 块

  • 如果需要在 try 块执行完毕后执行一些清理操作,可以使用 finally 块。finally 块中的代码无论是否发生异常都会执行:
try:
    result = numerator / denominator
    print("结果是:", result)
except ZeroDivisionError:
    print("错误:除数不能为零!")
finally:
    print("清理操作完成。")

视频讲解

BiliBili: 视睿网络-哔哩哔哩视频 (bilibili.com)