n个人平均分配100元钱,用户输入由n不同取值构成的列表,输出各种情况每人所分数额(分行输出,保留2位小数)。如果发生ZeroDivisionError则输出can't be 0;其他错误输出Error。列表元素处理完毕后输出over。 要求:用try语句处理异常。
时间: 2024-02-17 14:00:46 浏览: 24
好的,以下是 Python 代码实现:
```python
while True:
try:
n_list = input().split()
if not n_list:
break
for n in n_list:
n = int(n)
if n == 0:
print("can't be 0")
else:
result = 100 / n
print("{:.2f}".format(result))
except ZeroDivisionError:
print("can't be 0")
except Exception as e:
print("Error")
else:
print("over")
```
代码解释:
1. 首先使用 while 循环不断读取输入,直到遇到空行为止。
2. 在循环内部,使用 try-except 语句来捕获各种异常。
3. 首先将输入的字符串列表转换为整数列表,然后遍历列表,依次计算每个人分到的钱数,并使用 "{:.2f}" 格式化字符串来保留两位小数。
4. 如果某个 n 值为 0,则抛出 ZeroDivisionError 异常,并输出 "can't be 0"。
5. 如果遇到其他异常,则抛出 Error 异常,并输出 "Error"。
6. 如果输入结束,则输出 "over"。