python成绩统计_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]=j

a+=1

print"it is the message you input",dd

def ave(x):

x1=x.values()

s6=0

for o in x1:

s6=s6+int(o)

x3=len(x1)

x4=s6/x3

return x4

def shunxu(x):

y1=[]

for k in x:

y2=(x[k],k)

y1.append(y2)

y3=sorted(y1,reverse=True)

y5=[]

for k1 in y3:

y4=(k1[1],k1[0])

y5.append(y4)

return y5

def maxx(x):

z1=shunxu(x)#引用分数排列shunxu函数

z2=z1[0][1]

z3=[]

for k3 in z1:

if k3[1]==z2:

z3.append((k3[0],k3[1]))

return z3

def minx(x):

s1=shunxu(x)

s2=s1[len(s1)-1][1]

s3=[]

for k4 in s1:

if k4[1]==s2:

s3.append((k4[0],k4[1]))

return s3

if __name__=="__main__":

ave1=ave(dd)

print "平均成绩为",ave1

shunxu1=shunxu(dd)

print "分数从高到低进行排序",shunxu1

maxx1=maxx(dd)

print "学霸的分数为",maxx1

minx1=minx(dd)

print "学渣的分数为",minx1

个人感觉函数里引用了太多变量,很繁琐。总体简单易懂。还请各路大神指教,让代码变得简单一点。

标签:

你可能感兴趣的:(python成绩统计)