从键盘输入n,随机产生n名学生的课程成绩,利用列表输出平均值、最高的3个成绩和最低的3个成绩、成绩的中位数
时间: 2023-05-22 19:05:25 浏览: 50
以下是代码实现,输入n和n个成绩即可输出结果:
n = int(input("请输入学生人数:"))
grades = []
for i in range(n):
grade = int(input("请输入第{}个学生的成绩:".format(i+1)))
grades.append(grade)
# 计算平均值
avg = sum(grades) / n
# 排序
grades.sort()
# 计算最高的3个成绩
top3 = grades[-3:]
# 计算最低的3个成绩
bottom3 = grades[:3]
# 计算中位数
median = grades[n//2]
# 输出结果
print("平均值:{:.2f}".format(avg))
print("最高的3个成绩:", top3)
print("最低的3个成绩:", bottom3)
print("中位数:", median)
注意:以上代码仅给出思路和实现,仍然需要根据具体情况进行优化和修改。
相关问题
用python从键盘输入n,随机产生n名学生的课程成绩,利用列表输出平均值、最高的3个成绩和最低的3个成绩、成绩的中位数。
非常愉快地回答,以下是用 Python 实现的代码:
```python
import random
n = int(input("请输入学生人数: "))
scores = []
for i in range(n):
score = random.randint(0, 100)
scores.append(score)
avg_score = sum(scores) / n
sorted_scores = sorted(scores, reverse=True)
max_scores = sorted_scores[:3]
min_scores = sorted_scores[-3:]
median_score = sorted_scores[n // 2]
print("平均分数为: {}".format(avg_score))
print("最高的3个分数为: {}".format(max_scores))
print("最低的3个分数为: {}".format(min_scores))
print("中位数为: {}".format(median_score))
```
希望这个答案能够帮到你!
python中从键盘输入n,随机产生n名学生的课程成绩,利用列表输出平均值、最高的3个成绩和最低的3个成绩、成绩的中位数。
好的,这是一个非常基础的Python编程问题。我可以帮您编写代码来实现这个任务。
以下是代码示例:
```python
import random
# 从键盘输入n
n = int(input("请输入学生人数: "))
# 随机生成n个学生成绩
scores = [random.randint(0, 100) for _ in range(n)]
# 计算平均分
avg_score = sum(scores) / n
# 找到最高的3个成绩
top_scores = sorted(scores, reverse=True)[:3]
# 找到最低的3个成绩
bottom_scores = sorted(scores)[:3]
# 计算中位数
if n % 2 == 0: # 偶数个成绩
mid_score = (sorted(scores)[n // 2 - 1] + sorted(scores)[n // 2]) / 2
else: # 奇数个成绩
mid_score = sorted(scores)[n // 2]
# 输出结果
print("平均分是:", avg_score)
print("最高的3个成绩是:", top_scores)
print("最低的3个成绩是:", bottom_scores)
print("成绩的中位数是:", mid_score)
```
我希望这个代码能够对您有所帮助。如果您还有其他问题,请随时问我。
阅读全文