某班上有学生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))
代码如下:
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 = '分数') # 将最终成绩从大到小的有序输出
如有帮助,望采纳