0
grades_list=open('student_grades.txt','r')
for x in grades_list.readlines():
ft=1
hf=0
hm1=0
hm2=0
hm3=0
hm4=0
z=x.split()

for w in z:

    if ft==1:
        ft=0
        hm=0
        name=w
    else:
        if hf==1:
            hf=0
            if hm==1:
               hm1=int(w)
            else:
                if hm==2:
                   hm2=int(w)
                else:
                    if hm==3:
                        hm3=int(w)
                    else:
                        if hm==4:
                            hm4=int(w)
        else:
            if w=='HM1':
                hm=1
                hf=1
            else:
                if w=='HM2':
                    hm=2
                    hf=1
                else:
                    if w=='HM3':
                        hm=3
                        hf=1
                    else:
                        if w=='HM4':
                            hm=4
                            hf=1

        list_values = [hm1, hm2, hm3, hm4]
        average = float(sum(list_values)) / len(list_values)
        print hm1, hm2, hm3, hm4, average

プログラムを実行すると、次のように表示されます。

ロバート 0 90 80 92 65.5 ブリタニー 98 92 0 0 47.5 ドン 86 93 100 94 93.25 チャールズ 86 0 0 96 45.5 サム 90 0 70 0 40.0

データをアルファベット順に表示しようとしています:

ブリタニー 98 92 0 0 47.5 チャールズ 86 0 0 96 45.5 ドン 86 93 100 94 93.25 ロバート 0 90 80 92 65.5 サム 90 0 70 0 40.0

.sort() または sorted(set(x)) を使用して並べ替えを試みましたが、エラーが発生し続けます。ファイル自体を並べ替えたくはありませんが、ファイルを読み取ったら、数値と平均を出力する前に並べ替える必要があります。ありがとうございました!どんな助けでも大歓迎です!

4

1 に答える 1