moshkit

SortTaskFinal

Dec 7th, 2019
526
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.98 KB | None | 0 0
  1. from dataclasses import dataclass
  2.  
  3.  
  4. @dataclass
  5. class Student:
  6.     name: str
  7.     surname: str
  8.     mathematics: int
  9.     physics: int
  10.     informatics: int
  11.  
  12.     def rate(self):
  13.         return (self.mathematics + self.physics + self.informatics) / 3.0
  14.  
  15.  
  16. def read_student(line: str) -> Student:
  17.     fields = line.split(" ")
  18.     return Student(
  19.         name=fields[1],
  20.         surname=fields[0],
  21.         mathematics=int(fields[2]),
  22.         physics=int(fields[3]),
  23.         informatics=int(fields[4])
  24.     )
  25.  
  26.  
  27. def main():
  28.     students = []
  29.     with open("students.txt", 'r', encoding='UTF-8') as students_file:
  30.         lines_count = int(students_file.readline())
  31.         for student in students_file:
  32.             students.append(read_student(student))
  33.  
  34.     students.sort(key=lambda student: student.rate(), reverse=True)
  35.  
  36.     for student in students:
  37.         print("{surname} {name}".format(name=student.name, surname=student.surname))
  38.  
  39.  
  40. if __name__ == "__main__":
  41.     main()
Advertisement
Add Comment
Please, Sign In to add comment