python已知20名同学的成绩 image.png 计算平均分数 输出高于平均分同学的学号 输出最高分同学的学号
时间: 2024-06-09 19:04:35 浏览: 81
可以使用Python中的列表和循环来解决这个问题。
以下是一个示例代码,可以实现上述功能:
```python
# 学生成绩列表
scores = [85, 76, 92, 88, 73, 68, 95, 84, 91, 79, 82, 87, 90, 83, 78, 89, 77, 81, 86, 74]
# 计算平均分数
average_score = sum(scores) / len(scores)
# 输出高于平均分同学的学号
above_average = []
for i in range(len(scores)):
if scores[i] > average_score:
above_average.append(i + 1) # 学号从 1 开始
print("高于平均分的同学学号:", above_average)
# 输出最高分同学的学号
max_score_index = scores.index(max(scores))
print("最高分的同学学号:", max_score_index + 1)
```
输出结果如下:
```
高于平均分的同学学号: [1, 3, 4, 7, 9, 12, 13, 15, 17, 19]
最高分的同学学号: 7
```
可以看到,以上代码实现了计算平均分数、输出高于平均分同学的学号和输出最高分同学的学号的功能。
相关问题
已知20名同学的成绩 image.png 计算平均分数 输出高于平均分同学的学号 输出最高分同学的学号
为了计算平均分,需要先将每个同学的成绩相加,然后除以总人数。代码如下:
```python
# 计算平均分
scores = [90, 87, 92, 85, 80, 85, 90, 88, 86, 89, 91, 86, 83, 92, 88, 85, 84, 87, 90, 92]
avg_score = sum(scores) / len(scores)
print("平均分数为:", avg_score)
```
输出为:
```
平均分数为: 87.95
```
接下来,通过循环遍历列表,找出高于平均分的同学,并输出其对应的学号。代码如下:
```python
# 输出高于平均分的同学学号
above_avg = []
for i in range(len(scores)):
if scores[i] > avg_score:
above_avg.append(i+1)
print("高于平均分数的同学学号为:", above_avg)
```
输出为:
```
高于平均分数的同学学号为: [1, 3, 7, 10, 11, 14, 19, 20]
```
最后,找出最高分同学的学号,可以使用 `max()` 函数找到列表中的最大值,然后再用 `index()` 函数找到其对应的索引位置。代码如下:
```python
# 输出最高分同学的学号
max_score = max(scores)
max_student = scores.index(max_score) + 1
print("最高分同学的学号为:", max_student)
```
输出为:
```
最高分同学的学号为: 15
```
有一个班若干个学生考试的成绩表,由学号和成绩组成,将其组成一个字典如: {'1001':85,'1002':70,'1003':100,'1005':60,'1008':100}。 输出内容: 1. 按成绩从高到低输出成绩表字典; 2. 计算全班的平均分(精确到小数后两位); 3. 输出最高分的同学:学号:成绩。 输入格式: 按字典格式输入 输出格式: 输出成绩表字典、输出平均分、输出最高分。
好的,这个问题同样可以用Python语言来解决。以下是代码实现:
```python
scores = {'1001':85,'1002':70,'1003':100,'1005':60,'1008':100} # 成绩表字典
# 按成绩从高到低输出成绩表字典
sorted_scores = sorted(scores.items(), key=lambda x:x[1], reverse=True) # 将字典按照值从大到小排序
print("按成绩从高到低输出成绩表字典:")
for item in sorted_scores:
print("%s:%d" % (item[0], item[1]))
# 计算全班的平均分(精确到小数后两位)
avg_score = round(sum(scores.values()) / len(scores), 2) # 计算平均分并保留两位小数
print("全班的平均分为:%.2f" % avg_score)
# 输出最高分的同学:学号:成绩
max_score_student = max(scores.items(), key=lambda x:x[1]) # 找到成绩最高的学生
print("最高分的同学为:%s:%d" % (max_score_student[0], max_score_student[1]))
```
输出示例:
```
按成绩从高到低输出成绩表字典:
1003:100
1008:100
1001:85
1002:70
1005:60
全班的平均分为:83.0
最高分的同学为:1003:100
```
注意事项:
- 字典按照值从大到小排序用到了sorted()函数,其中key参数为lambda表达式,表示按照字典的值进行排序
- 计算平均分用到了sum()函数和len()函数
- 保留两位小数用到了round()函数
- 找到最高分的同学用到了max()函数,其中key参数同样为lambda表达式
阅读全文