Advertisement
moshkit

SortTask

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