用python 从键盘输入n,随机产生n名学生的课程成绩,利用列表输出平均值、最高的3个成绩和最低的3个成绩、成绩的中位数。
时间: 2023-05-18 14:05:34 浏览: 173
以下是Python代码实现:
```python
import random
# 从键盘输入n
n = int(input("请输入学生人数:"))
# 随机生成n名学生的成绩
scores = []
for i in range(n):
score = random.randint(0, 100)
scores.append(score)
# 输出平均值
average = sum(scores) / n
print("平均成绩为:", average)
# 输出最高的3个成绩
top3 = sorted(scores, reverse=True)[:3]
print("最高的3个成绩为:", top3)
# 输出最低的3个成绩
bottom3 = sorted(scores)[:3]
print("最低的3个成绩为:", bottom3)
# 输出成绩的中位数
scores.sort()
if n % 2 == 0:
median = (scores[n//2-1] + scores[n//2]) / 2
else:
median = scores[n//2]
print("成绩的中位数为:", median)
```
运行结果示例:
```
请输入学生人数:10
平均成绩为: 52.7
最高的3个成绩为: [91, 89, 86]
最低的3个成绩为: [8, 12, 14]
成绩的中位数为: 53.5
```
相关问题
用python从键盘输入n,随机产生n名学生的课程成绩,利用列表输出平均值、最高的3个成绩和最低的3个成绩、成绩的中位数。
非常感谢您的问题!请参考下面的Python代码实现:
```python
import random
def main():
n = int(input("请输入学生数量: "))
scores = []
for i in range(n):
# 随机生成成绩
score = random.randint(0, 100)
scores.append(score)
# 计算平均值
avg_score = sum(scores) / n
# 输出平均值
print("平均值:", avg_score)
# 排序
scores.sort(reverse=True)
# 输出最高的3个成绩
print("最高的3个成绩:", scores[:3])
# 输出最低的3个成绩
print("最低的3个成绩:", scores[-3:])
# 计算中位数
if n % 2 == 0:
median = (scores[n // 2 - 1] + scores[n // 2]) / 2
else:
median = scores[n // 2]
# 输出中位数
print("中位数:", median)
if __name__ == '__main__':
main()
```
希望我的代码能够帮助到您!
从键盘输入n,随机产生n名学生的课程成绩,利用列表输出平均值、最高的3个成绩和最低的3个成绩、成绩的中位数python
答案如下:
```python
import random
# 从键盘输入n
n = int(input("请输入学生人数:"))
# 随机产生n名学生的成绩
scores = []
for i in range(n):
score = random.randint(0, 100)
scores.append(score)
# 利用列表输出平均值
avg_score = sum(scores) / len(scores)
print("平均值为:", avg_score)
# 输出最高的3个成绩
highest_scores = sorted(scores, reverse=True)[:3]
print("最高的3个成绩为:", highest_scores)
# 输出最低的3个成绩
lowest_scores = sorted(scores)[:3]
print("最低的3个成绩为:", lowest_scores)
# 输出成绩的中位数
scores.sort()
if n % 2 == 0:
median_score = (scores[n // 2] + scores[n // 2 - 1]) / 2
else:
median_score = scores[n // 2]
print("成绩的中位数为:", median_score)
```
希望能够帮到你!