请问用python写这个,谁能告诉我一下

某班上有学生58人
1.python期末成绩随机生生成
2.现在要计算该班上学生平均成绩
3.且找到成绩低于平均成绩的学生和学生人数
4.将最终成绩从大到小的有序输出
怎么写呀

代码及效果如下
有帮助望采纳~

import random
a = []
for i in range(58):
    a.append(random.randint(0, 100))
ave = sum(a)/len(a)
print('平均分:', ave)
print('低于平均分的学生有:')
count= 0
for i in range(58):
    if a[i]<ave:
        print(f'第{i+1}名学生成绩低于平均分,为:{a[i]}')
        count+=1
print('低于平均分的共有{}人'.format(count))
print('排序后的成绩为')
print(sorted(a))

img

代码如下:

import random
import pandas as pd
sc = []
for i in range(58):
    sco = round(random.uniform(0, 100),1) #随机生成分数
    sc.append(sco)
  
name = ['学生'+str(i) for i in range(1,59)]
df = pd.DataFrame([name,sc]).T
df.columns = ['姓名','分数']
means = df['分数'].mean() #该班上学生平均成绩
na = [] #不及格的学生名字
for f in df['分数']:
    a = df.loc[df['分数'] == f].index[0] # 获取元素所在的行数
    if f < means:
        na.append(df.iloc[a,0]) #将不及格的学生名字添加到na列表中
num_st = len(na)  #不及格学生人数
final = df.sort_values(by = '分数') # 将最终成绩从大到小的有序输出

如有帮助,望采纳