020. 编写一个try-except块来捕获并处理除以零的错误
在 Python 中,除以零会引发 ZeroDivisionError
异常。为了捕获并处理这种错误,可以使用 try-except
块。以下是一个示例代码,展示如何捕获并处理除以零的错误:
示例代码
# 定义两个变量
numerator = 10
denominator = 0
try:
# 尝试执行除法操作
result = numerator / denominator
print("结果是:", result)
except ZeroDivisionError:
# 捕获除以零的错误
print("错误:除数不能为零!")
运行结果
运行上述代码后,输出如下:
错误:除数不能为零!
代码解释
定义变量:
- 定义了两个变量
numerator
和denominator
,分别表示被除数和除数。
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)