编写程序,输入人数n,输出每人平均分得多少元钱(假设有100元钱,结果保留2位小数)。如果发生ZeroDivisionError错误,则输出Error0;如果发生ValueError,则输出Error1,其他错误输出Error2。最后无论是否发生异常,都输出over。
时间: 2024-03-21 22:44:23 浏览: 69
好的,以下是Python代码实现:
```python
try:
n = int(input("请输入人数:"))
if n == 0:
raise ZeroDivisionError
avg_money = round(100 / n, 2)
print("每人平均分得:", avg_money, "元")
except ZeroDivisionError:
print("Error0")
except ValueError:
print("Error1")
except:
print("Error2")
finally:
print("over")
```
解释一下代码实现的过程:
首先使用 `try` 关键字来尝试执行可能会产生异常的代码,如果没有异常发生,则直接执行 `try` 块中的代码,如果有异常发生,则会跳转到对应的 `except` 块中处理异常。
在这个程序中,我们可能会遇到 `ZeroDivisionError` 和 `ValueError` 两种异常。如果发现人数为0,就会产生 `ZeroDivisionError` 异常,此时我们在 `except` 块中输出 "Error0";如果输入的不是整数,就会产生 `ValueError` 异常,此时我们在 `except` 块中输出 "Error1";如果发生其他异常,就会进入到 `except` 块中的最后一个分支,输出 "Error2"。
无论是否发生异常,最后都会执行 `finally` 块中的代码,输出 "over"。
阅读全文