python生成30个百以内成绩放入列表a中,设计一个函数MyFun(),将a传递给它,再为函数设定一个默认值参数grade。grade传递5、4、3、2、1,分别统计优、良、中、及格和不及格的人数。
时间: 2024-10-08 20:24:26 浏览: 24
Python期末试题A.docx
在Python中,你可以通过随机模块`random`来生成指定范围内的随机数,然后填充到列表中。接着创建一个名为`MyFun`的函数,接收一个成绩列表作为输入,并使用字典来跟踪每个等级的学生人数,其中`grade`作为默认参数。以下是具体的代码示例:
```python
import random
def generate_scores(num):
"""
生成并返回包含指定数量成绩的列表
"""
a = [random.randint(0, 100) for _ in range(num)]
return a
def MyFun(scores, grade=None):
"""
统计成绩列表中各等级的人数,默认等级为5分及以上为优秀,4分为良好,3分为及格,2分为不及格,1分以下为不及格
"""
if grade is None:
grade = {60: '及格', 70: '良', 80: '优', 90: '优', 100: '优', 0: '不及格'}
else:
grade = {i: f"{i}" for i in range(1, grade+1)}
grades_count = {}
for score in scores:
if score in grade:
grades_count[grade[score]] = grades_count.get(grade[score], 0) + 1
return grades_count
# 生成30个成绩并计算结果
scores_list = generate_scores(30)
result = MyFun(scores_list)
print(f"原始成绩分布: {result}")
# 如果你想设置默认的grade参数,可以这样调用
grades_with_default = MyFun(scores_list, 5)
print(f"默认优秀等级成绩分布: {grades_with_default}")
阅读全文