famils = {"Петров", "Сидоров", "Иванов", "Козляков", "Колмокозков", "Дрозников"} # Так как не было сказанно про распределение. # Попросил ИИ распределить по рандому должников. math_fails = {"Иванов", "Козляков"} lang_fails = {"Петров", "Дрозников", "Сидоров"} info_fails = {"Колмокозков", "Иванов", "Петров"} # Вывожу сразу три задания, так как ответ умещается в одну строку. # Для красивого показа использую оператор распаковки *, тоесть вывод будет: Козляков Иванов Петров print("Должники по информатике и математике:", *math_fails | info_fails) print("Должники по трем предметам: ", *famils) # или math_fails | lang_fails | info_fails print("Должник по одному предмету: ", *math_fails - lang_fails - info_fails ) if 'Сидоров' in math_fails and 'Сидоров' in lang_fails: sid_res = "Да" elif 'Сидоров' in math_fails: sid_res = "Да, только Математика" elif 'Сидоров' in lang_fails: sid_res = "Да, только Русский" print("Сидоров в должниках по матем или русскому?", sid_res ) # Вывод(В первом ответ может быть рандомный, как угодно множеству) #Должники по информатике и математике: Козляков Петров Иванов Колмокозков #Должники по трем предметам: Козляков Сидоров Петров Иванов Дрозников Колмокозков #Должник по одному предмету: Козляков #Сидоров в должниках по матем или русскому? Да, только Русский