编写一个评分模块(pingfen.py),里面有一个评分函数,函数可以输入任意个数字,然后去掉最高分和最低分,计算出平均分。把该模块放入一个包中(my_pack),然后再建立一个python文件从该包导入该模块,调用里面的函数,看是否能运行。函数里面要求能对所输入的数据异常进行异常处理,当输入的数据不是整数或浮点数,则提示数字类型错误。用python代码写
时间: 2024-02-13 16:05:33 浏览: 62
gradeModule:这是python程序。 它将要求用户输入信息,例如课程中的测验,实验室,作业和考试的数量。它将要求每个模块的权重以返回课程的总分和分数
好的,请稍等。以下是代码实现:
首先是评分模块 `pingfen.py`:
```python
def pingfen(*score):
try:
score_list = list(map(float, score))
if len(score_list) < 3:
print("输入的分数个数不能少于3个!")
return None
else:
score_list.remove(max(score_list))
score_list.remove(min(score_list))
avg_score = sum(score_list) / len(score_list)
return avg_score
except ValueError:
print("输入的分数必须是数字!")
return None
```
然后是建立的包 `my_pack`,其中要包含一个空的 `__init__.py` 文件。
最后是导入模块并调用的文件 `main.py`:
```python
from my_pack.pingfen import pingfen
# 测试用例
score1 = [90, 85, 78, 92, 88]
score2 = [80, 75, 85]
score3 = [60, 70, 80, 90, 100, "abc"]
avg_score1 = pingfen(*score1)
avg_score2 = pingfen(*score2)
avg_score3 = pingfen(*score3)
print("平均分1:", avg_score1)
print("平均分2:", avg_score2)
print("平均分3:", avg_score3)
```
运行后的输出结果如下:
```
平均分1: 87.66666666666667
平均分2: 80.0
输入的分数必须是数字!
平均分3: None
```
阅读全文