I’m working on the new teacher in town project in the intermediate python 3 course.
I’m stuck on step 5 which asks you to create an after school program for students whose favorite subjects are science and math.
I tried to set up step5 similar to step 3 which asks you to sort the names of the students alphabetically. When I tried to set it up for step 5, I keep getting a message saying:
Traceback (most recent call last):
File “script.py”, line 72, in
classroom = ClassroomOrganizer1()
TypeError: init() missing 1 required positional argument: ‘subject’
Below is my code:
from roster import student_roster
import itertools
from classroom_organizer import ClassroomOrganizer
student_roster_iterator = iter(student_roster)
#print(next(student_roster_iterator))
#print(next(student_roster_iterator))
#print(next(student_roster_iterator))
#print(next(student_roster_iterator))
#print(next(student_roster_iterator))
#print(next(student_roster_iterator))
#print(next(student_roster_iterator))
#print(next(student_roster_iterator))
#print(next(student_roster_iterator))
#print(next(student_roster_iterator))
import itertools
from roster import student_roster
# Import modules above this line
class ClassroomOrganizer:
def __init__(self):
self.sorted_names = self._sort_alphabetically(student_roster)
self.counter = 0
def __iter__(self):
return self
def __next__(self):
if self.counter < len(student_roster):
nxt_value = self.sorted_names[self.counter]
self.counter += 1
return nxt_value
else:
raise StopIteration
def _sort_alphabetically(self,students):
names = []
for student_info in students:
name = student_info['name']
names.append(name)
print(sorted(names))
class ClassroomOrganizer1:
def __init__(self, subject):
self.sorted_subjects = self.get_students_with_subjects
self.counter = 0
def __iter__(self):
return self
def __next__(self):
if self.counter < len(student_roster):
nxt_value = self.sorted_names[self.counter]
self.counter += 1
return nxt_value
else:
raise StopIteration
def get_students_with_subject(self, students, subject):
selected_students_subjects = []
for student_info in students:
selected_student = student_info['name']
favorite_subject = student_info['favorite_subject']
selected_students_subjects.chain(selected_student, favorite_subject)
print(selected_students)
classroom = ClassroomOrganizer()
tables = ['Table1', 'Table2', 'Table3', 'Table4', 'Table5']
table_iterator = iter(tables)
table_combo = itertools.combinations(tables, 2)
students_list = ['Alex', 'Benny', 'Esmeralda', 'Helena', 'Karina', 'Marisol', 'Matthew', 'Sandy', 'Trudy', 'Yori']
student_list_iterator = iter(students_list)
student_combo = itertools.combinations(students_list, 2)
for combo in student_combo:
print(combo)
classroom = ClassroomOrganizer1()