48 lines
2.1 KiB
Plaintext
48 lines
2.1 KiB
Plaintext
|
|
# Все возможные фамилии учеников
|
|||
|
|
famils = {"Петров", "Сидоров", "Иванов", "Козляков", "Колмокозков", "Дрозников"}
|
|||
|
|
|
|||
|
|
# Должники по предметам (заданы вручную)
|
|||
|
|
math_fails = {"Иванов", "Козляков"}
|
|||
|
|
lang_fails = {"Петров", "Дрозников", "Сидоров"}
|
|||
|
|
info_fails = {"Колмокозков", "Иванов", "Петров"}
|
|||
|
|
|
|||
|
|
print("=" * 50)
|
|||
|
|
print("Анализ должников по предметам")
|
|||
|
|
print("=" * 50)
|
|||
|
|
|
|||
|
|
# 1) Долги и по математике, и по информатике → пересечение
|
|||
|
|
math_and_info = math_fails & info_fails
|
|||
|
|
print("1) Должники и по математике, и по информатике:")
|
|||
|
|
print(" ", *sorted(math_and_info) if math_and_info else ["—"])
|
|||
|
|
|
|||
|
|
# 2) Должники по всем трём предметам → пересечение всех трёх
|
|||
|
|
all_three = math_fails & lang_fails & info_fails
|
|||
|
|
print("\n2) Должники по всем трём предметам:")
|
|||
|
|
print(" ", *sorted(all_three) if all_three else ["—"])
|
|||
|
|
|
|||
|
|
# 3) У кого ровно один долг
|
|||
|
|
only_math = math_fails - lang_fails - info_fails
|
|||
|
|
only_lang = lang_fails - math_fails - info_fails
|
|||
|
|
only_info = info_fails - math_fails - lang_fails
|
|||
|
|
exactly_one = only_math | only_lang | only_info
|
|||
|
|
|
|||
|
|
print("\n3) У кого ровно один долг:")
|
|||
|
|
print(" ", *sorted(exactly_one) if exactly_one else ["—"])
|
|||
|
|
|
|||
|
|
# 4) Проверка: Сидоров в математике или русском?
|
|||
|
|
sidorov_in_math = "Сидоров" in math_fails
|
|||
|
|
sidorov_in_lang = "Сидоров" in lang_fails
|
|||
|
|
|
|||
|
|
if sidorov_in_math and sidorov_in_lang:
|
|||
|
|
sid_res = "Да, и по математике, и по русскому"
|
|||
|
|
elif sidorov_in_math:
|
|||
|
|
sid_res = "Да, только по математике"
|
|||
|
|
elif sidorov_in_lang:
|
|||
|
|
sid_res = "Да, только по русскому"
|
|||
|
|
else:
|
|||
|
|
sid_res = "Нет"
|
|||
|
|
|
|||
|
|
print("\n4) Сидоров в должниках по математике или русскому?")
|
|||
|
|
print(" ", sid_res)
|
|||
|
|
|
|||
|
|
print("=" * 50)
|