编写一个程序,输入某个班某门课程成绩,统计及格人数、不及格人数及课程平均分。设计一个异常类,当输入的成绩小于0或者大于100时抛出异常,程序将捕获这个异常,并作出相应处理。算
时间: 2023-06-01 07:07:07 浏览: 190
法可以自行设计,例如使用列表保存成绩等。
感谢您的提问!关于您的问题,这是一个经典的编程题目,可以通过编写一个简单的程序来实现。以下是一个示例的 Python 代码,仅供参考:
```python
class ScoreOutOfRange(Exception):
def __init__(self, score):
self.score = score
def __str__(self):
return "成绩 {} 不在有效范围内(0-100)!".format(self.score)
def calc_stats(scores):
passed_count = len([score for score in scores if score >= 60])
failed_count = len([score for score in scores if score < 60])
average = sum(scores) / len(scores)
return passed_count, failed_count, average
if __name__ == "__main__":
try:
scores = []
while True:
score = int(input("请输入成绩,输入 -1 结束输入:"))
if score == -1:
break
if score < 0 or score > 100:
raise ScoreOutOfRange(score)
scores.append(score)
except ValueError:
print("输入的成绩必须是整数!")
except ScoreOutOfRange as e:
print(e)
else:
passed_count, failed_count, average = calc_stats(scores)
print("及格人数:{},不及格人数:{},平均分:{:.2f}".format(passed_count, failed_count, average))
```
这段代码实现了以下功能:
1. 提供交互式输入,输入成绩(必须是整数),以 -1 结束输入。
2. 如果输入的成绩小于 0 或大于 100,抛出一个异常(`ScoreOutOfRange`),告诉用户输入的成绩不在有效范围内。
3. 计算及格人数、不及格人数和平均分,并输出结果。
希望这可以帮助您!
阅读全文