4.n个人平均分配100元钱,用户输入由n不同取值构成的列表,输出各种情况每人所分数额(分行输出,保留2位小数)。如果发生ZeroDivisionError则输出can't be 0;其他错误输出Error。列表元素处理完毕后输出over。 要求:用try语句处理异常
时间: 2024-03-22 19:37:56 浏览: 43
好的,我来解答这个问题。以下是 Python 代码实现:
```
while True:
try:
n_list = input().split()
if len(n_list) == 1 and n_list[0] == 'over':
print('over')
break
nums = [int(n) for n in n_list]
for n in nums:
if n == 0:
print('can\'t be 0')
else:
avg = 100 / n
print('%.2f' % avg)
except ZeroDivisionError:
print('can\'t be 0')
except:
print('Error')
```
程序首先进入一个无限循环,每次循环中用户输入一些数字,这些数字会被解析成一个列表 `nums`。如果输入的是单独的字符串 "over",则程序结束并输出 "over"。
接下来,程序遍历 `nums` 列表中的每个数字。如果数字为 0,则输出 "can't be 0";否则,计算出每个人应该分配到的钱数,并输出结果(保留两位小数)。
如果遇到除以 0 的情况,捕获 `ZeroDivisionError` 异常并输出 "can't be 0"。如果遇到其他异常,则捕获所有异常并输出 "Error"。
希望这个解答能够帮到你!
阅读全文