要求设计完成程序。program. py 的初始内容如下, scores = [98,67,88,34,95,88,88,83,78,79, 86,30,77,95,95,89,81,70,80, 90, 66, 60, 33, 86, 45, 90, 99,100, 75,86](1)程序功能: prosram. py文件中已给出了某小学三年级三班 30 名学生的数学成绩列表,统计该班级数学成绩中“优秀”“良好”“合格”和“不合格”学生的人数并输出结果。“(2) 程序运行结果如下图所示:优秀:8人,良好:10人,合格:8人,不合格:4人2、一个数如正好等于它的所有因子之和,则称为完数,例如 6 的因子有1、2、3,而 6=1+2+3,因此 6 是一个完数。编程序找出 1000 之内的所有完数。+
时间: 2024-04-03 14:33:03 浏览: 234
通过注释解析yolo源码,detect.py train.py yolo.py
以下是程序的实现:
```python
# 统计数学成绩中各级别的人数
def score_analysis(scores):
excellent = 0
good = 0
pass_count = 0
fail = 0
for score in scores:
if score >= 90:
excellent += 1
elif score >= 80:
good += 1
elif score >= 60:
pass_count += 1
else:
fail += 1
print("优秀:{}人,良好:{}人,合格:{}人,不合格:{}人".format(excellent, good, pass_count, fail))
# 找出1000以内的所有完数
def perfect_number():
for i in range(2, 1001):
factors = []
for j in range(1, i):
if i % j == 0:
factors.append(j)
if sum(factors) == i:
print(i)
if __name__ == '__main__':
scores = [98, 67, 88, 34, 95, 88, 88, 83, 78, 79, 86, 30, 77, 95, 95, 89, 81, 70, 80, 90, 66, 60, 33, 86, 45, 90, 99, 100, 75, 86]
score_analysis(scores)
perfect_number()
```
程序输出如下:
```
优秀:8人,良好:10人,合格:8人,不合格:4人
6
28
496
```
第一个函数 `score_analysis` 统计数学成绩中各级别的人数,循环遍历列表中的分数,根据分数范围判断属于哪个级别,并累加对应级别的人数,最后输出结果。
第二个函数 `perfect_number` 则是找出1000以内的所有完数,外层循环遍历 2 到 1000 的所有数,内层循环找出每个数的因子,然后判断因子之和是否等于该数本身,如果相等则说明这是一个完数,输出即可。
阅读全文