python成绩统计(优化版)

接上篇文章,自己再简化了下代码,仅供参考!

#!/usr/bin/env Python
#coding:utf-8
#352-01.py
a=1
n1=raw_input("please input number of student:")
n=int(n1)
dd={}
while a<=n:
i=raw_input("please input student name:")
j=raw_input("please input score for %s:"% i)
dd[i]=int(j)
a+=1
  
print"it is the message you input",dd


def average_score(x):
score_values=x.values()
sum_score=sum(score_values)
return sum_score/len(score_values)


def sorted_score(y):
score_list=[(y[k],k) for k in y]
score_sorted=sorted(score_list,reverse=True)
return [(k[1],k[0]) for k in score_sorted]


def max_score(m):
m1=sorted_score(m)
score_max=m1[0][1]
return [k for k in m1 if k[1]==score_max]


def min_score(z):
z1=sorted_score(z)
score_min=z1[len(z1)-1][1]
return [k for k in z1 if k[1]==score_min]


if __name__=="__main__":
pjf=average_score(dd)
print"全班的平均分数为%d"% pjf
sx=sorted_score(dd)
print"全班分数由高到低的顺序为:",sx
gf=max_score(dd)
print"学霸及其成绩:",gf
df=min_score(dd)
print"学渣,你出名了:",df

这个代码相对就简化好多了。



[(k[x],k[x) for k in list]   这个真心好用啊,简化了我上篇文章代码的很多操作,变量也不需要那么多了!









你可能感兴趣的:(python)