Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Using Python could you please complete the Class Course's todos Ofromfuture import annotations from typing import TYPE_CHECKING, List, Tuple, Optional if TYPE_CHECKING: from survey import

Using Python could you please complete the Class Course's todosimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribed

Ofromfuture import annotations from typing import TYPE_CHECKING, List, Tuple, Optional if TYPE_CHECKING: from survey import Answer, Survey, Question def sort_students(lst: List[Student], attribute: str) -> List[Student]: Return a shallow copy of sorted by === Precondition === is a attribute name for the Student class >>> s1 = Student(1, "Misha'), >>> $2 = Student (2, 'Diane'), >>> s3 = Student (3, 'Mario'), >>> sort_students([s1, s3, s2], 'id') == [s1, s2, S3] True >>> sort students([s1, S2, S3], 'name') == [s2, s3, S1] True return sorted(lst, key=lambda s: getattr(s, attribute)); class Student: A Student who can be enrolled in a university course. === Public Attributes === Ed. the df bo andan === Public Attributes === id: the id of the student name: the name of the student === Representation Invariants === name is not the empty string id: int name: str def __init__(self, id_: int, name: str) -> None: " Initialize a student with name and id " self.id = id_ self.name = name self.qa: {Question: Answer} = {}, def ___str_(self) -> str: " Return the name of this student " return self.name def has_answer(self, question: Question) -> bool: Return True iff this student has an answer for a question with the same id as . if question in self.qa: return True else: else: return false def set_answer(self, question: Question, answer: Answer) -> None: Record this student's answer . 'self.qa[question] = answer def get_answer(self, question: Question) -> Optional [Answer]: Return this student's answer to the question . Return None if this student does not have an answer to if question in self.ga: return self.qa[question] return None classmCourse: A University Course === Public Attributes === name: the name of the course students: a list of students enrolled in the course === Representation Invariants === No two students in this course have the same id name is not the empty string name: str 'students: List[Student] def __init__(self, name: str) -> None: Initialize a course with the name of , self.name = name self.students = [] . def enroll_students (self, students: List[Student]) -> None: Enroll all students in in this course. If adding any student would violate a representation invariant, do not add any of the students in bool: Return True iff all the students enrolled in this course have a valid answer for every question in . # TODO: complete the body of this method def get_students(self) -> Tuple [Student, ...): Return a tuple of all students enrolled in this course. Return a tuple of all students enrolled in this course. The students in this tuple should be in order according to their id from lowest id to highest id. Hint: the sort_students function might be useful # TODO: complete the body of this method Ofromfuture import annotations from typing import TYPE_CHECKING, List, Tuple, Optional if TYPE_CHECKING: from survey import Answer, Survey, Question def sort_students(lst: List[Student], attribute: str) -> List[Student]: Return a shallow copy of sorted by === Precondition === is a attribute name for the Student class >>> s1 = Student(1, "Misha'), >>> $2 = Student (2, 'Diane'), >>> s3 = Student (3, 'Mario'), >>> sort_students([s1, s3, s2], 'id') == [s1, s2, S3] True >>> sort students([s1, S2, S3], 'name') == [s2, s3, S1] True return sorted(lst, key=lambda s: getattr(s, attribute)); class Student: A Student who can be enrolled in a university course. === Public Attributes === Ed. the df bo andan === Public Attributes === id: the id of the student name: the name of the student === Representation Invariants === name is not the empty string id: int name: str def __init__(self, id_: int, name: str) -> None: " Initialize a student with name and id " self.id = id_ self.name = name self.qa: {Question: Answer} = {}, def ___str_(self) -> str: " Return the name of this student " return self.name def has_answer(self, question: Question) -> bool: Return True iff this student has an answer for a question with the same id as . if question in self.qa: return True else: else: return false def set_answer(self, question: Question, answer: Answer) -> None: Record this student's answer . 'self.qa[question] = answer def get_answer(self, question: Question) -> Optional [Answer]: Return this student's answer to the question . Return None if this student does not have an answer to if question in self.ga: return self.qa[question] return None classmCourse: A University Course === Public Attributes === name: the name of the course students: a list of students enrolled in the course === Representation Invariants === No two students in this course have the same id name is not the empty string name: str 'students: List[Student] def __init__(self, name: str) -> None: Initialize a course with the name of , self.name = name self.students = [] . def enroll_students (self, students: List[Student]) -> None: Enroll all students in in this course. If adding any student would violate a representation invariant, do not add any of the students in bool: Return True iff all the students enrolled in this course have a valid answer for every question in . # TODO: complete the body of this method def get_students(self) -> Tuple [Student, ...): Return a tuple of all students enrolled in this course. Return a tuple of all students enrolled in this course. The students in this tuple should be in order according to their id from lowest id to highest id. Hint: the sort_students function might be useful # TODO: complete the body of this method

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions