第3章中的例子9的程序允许用户在键盘依次输入若干个数字(每输入一个数字都需要按回车键确认),程序将计算出这些数的和以及平均值。请在第3章的例子9中增加自定义异常类,当用户输入的数字大于100或小于0时,程序立刻终止执行,并提示这是一个非法的成绩数据。
时间: 2024-02-05 22:10:30 浏览: 146
在第3章例子9的程序中,我们可以增加一个自定义异常类来处理非法的成绩数据,代码如下:
```python
class ScoreError(Exception):
pass
try:
score_list = []
while True:
score = input("请输入学生成绩(按Q结束):")
if score.upper() == 'Q':
break
score = float(score)
if score < 0 or score > 100:
raise ScoreError("非法的成绩数据!")
score_list.append(score)
score_sum = sum(score_list)
score_avg = score_sum / len(score_list)
print("所有成绩的和为:%.2f,平均成绩为:%.2f" % (score_sum, score_avg))
except ScoreError as e:
print(e)
except Exception as e:
print("程序发生异常:", e)
finally:
print("程序执行完毕!")
```
在程序中,我们首先定义了一个自定义异常类ScoreError,当输入的成绩数据大于100或小于0时,我们就抛出这个异常。然后,在主程序中,我们使用try-except语句来捕获这个异常,并输出错误信息。如果程序发生其他异常,我们也会捕获它,并输出错误信息。最后,我们使用finally语句来输出程序执行完毕的信息。
阅读全文