Python練習——学生成績ランキング(クラスと対象練習)

7823 ワード

タイトルの説明
文字列タイプsnameは入力された学生の名前を表し、整数値mscoreは学生の数学成績を表し、整数値cscoreは学生の国語成績を表し、整数値escoreは学生の英語成績を表す.
そして、入力された学生の成績(それぞれ異なる)に基づいて、総得点が最も高い学生の名前と各科目の成績を出力するように要求する.
入力形式:
入力は4つのセクションに分かれています.
まず学生の名前を入力して、スペースで区切ります.
そして、学生の数学の成績(それぞれ異なる正の整数)を入力し、スペースで区切ります.
学生の国語数学の成績(それぞれ異なる正の整数)を入力しても、スペースで区切られます.
最後に、学生の英語の数学の成績(それぞれ異なる正の整数)を入力し、スペースで区切ります.
学生の名前の個数と成績の個数は必ず同じです.
出力フォーマット:
合計点数が最も高い学生の名前と各科目の成績のために、スペースで区切られています.
サンプルを入力:
jack tom
95 84
90 75
85 90
出力サンプル:
jack 95 90 85
コード#コード#
#        (Student),        :
class Student:
#      sname         ,
    def __init__(self,sname,msocre,cscore,escore):
        self.sname,self.msocre,self.cscore,\
            self.escore = sname,msocre,cscore,escore
        self.res = self.msocre + self.cscore + self.escore
#    mscore         ,
#    cscore         ,
#    escore         。
    def show(self):
        print('%s %d %d %d'%
              (self.sname,self.msocre,self.cscore,self.escore))
    def __lt__(self, other):
        return self.res < other.res

#              (    )
# ,                 。
name = input().split(' ')
mscore =list(map(int,input().split(' ')))
cscore = list(map(int,input().split(' ')))
escore =list(map(int,input().split(' ')))
list1 = list()
for i in range(0,len(name)):
    b = Student(name[i],mscore[i],cscore[i],escore[i])
    list1.append(b)
list1.sort()
list1[-1].show()

まとめ:
  • サイズを比較するには、比較サイズの標準__を定義します.lt__()関数
  • 考えてみてください.もし複数の1位がいたら、あなたは間違っていますか.
  • は、入力時にオブジェクト
  • を作成する方法を思いつかなかった.