求解python编程问题

#题目信息

img


#输入实例和输出实例

img


#自己尝试写了一些代码,但是感觉思路有问题,只能解决单一问题,无法能够做到整体处理
以及非常困惑的是对于题目要求按学号顺序输出学生信息不太清楚该用什么方法达成
希望能得到大家的详细解答
#以下是自己尝试写了一些代码

img


def px1(data):
min_score1=int(data.split()[3])
max_score1=int(data.split()[3])
sum1=0
n1=0
fail_num_1=0
while data:
n1+=1
ls=data.split()
sum1+=int(ls[3])
if min_score1>int(ls[3]):
min_score1=int(ls[3])
if max_score1<int(ls[3]):
max_score1=int(ls[3])
if ls[3]<"60":
fail_num_1+=1
data = input()
if data=="#":
break
avg1=sum1/n1
print("{} {} {} {}".format(avg1,max_score1,min_score1,fail_num_1))
data=input()
mul(data)
px1(data)

望采纳

import operator
b=[]
c=[]
d=[]
while True:
    a=input('请输入学生的学号,姓名,性别,三门课成绩:')
    a=a.split(' ')
    if '#' in a:
        break
    for i in range(3,6):
        a[i]=float(a[i])
    b.append(a)
b.sort(key=operator.itemgetter(0),reverse=False)
for i in range(len(b)):
    print(b[i][0],b[i][1],b[i][2],'%.2f'%((b[i][3]+b[i][4]+b[i][5])/3))
print('    ')
for j in range(3,6):
    for i in range(len(b)):
        c.append(b[i][j])
    d.append(c)
    c=[]
for k in range(len(d)):
    z=0
    for w in d[k]:
        if w <60:
            z+=1
    sum=0
    for e in range(len(d[k])):
        sum+=d[k][e]
    print('%.2f'%(sum/len(b)),max(d[k]),min(d[k]),z)

请输入学生的学号,姓名,性别,三门课成绩:1004 ddd 女 59 45,98
请输入学生的学号,姓名,性别,三门课成绩:aaca01 aaa 女 90 90 90
请输入学生的学号,姓名,性别,三门课成绩:abc10 ccc 男 100 50 90
请输入学生的学号,姓名,性别,三门课成绩:bcd1002 bbb 男 80 86 89
请输入学生的学号,姓名,性别,三门课成绩:#
1004 ddd 女 67.33
aaca01 aaa 女 90.00
abc10 ccc 男 80.00
bcd1002 bbb 男 85.00

82.25 100.0 59.0 1
67.75 90.0 45.0 2
91.75 98.0 89.0 0

Process finished with exit code 0