def read_set_from_keyboard(prompt): """Считывает элементы множества с клавиатуры.""" s = set() print prompt # Выводим приглашение для ввода print "Введите элементы множества (для завершения введите 'стоп'):" while True: element = raw_input() # Используем raw_input() вместо input() if element.lower() == "стоп": break try: s.add(int(element)) # Преобразуем в целое число, если возможно except ValueError: print "Ошибка: Введите целое число или 'стоп'." continue # Переходим к следующей итерации цикла print "Множество:", s # Для отладки return s def set_difference(a, b): """Вычисляет разность множеств A \\ B.""" return a - b def set_union(b, c): """Вычисляет объединение множеств B ∪ C.""" return b | c def set_intersection(a, b): """Вычисляет пересечение множеств A ∩ B.""" return a & b def main(): """Главная функция программы.""" # Вводим множества A, B и C только с клавиатуры A = read_set_from_keyboard("Ввод множества A:") B = read_set_from_keyboard("Ввод множества B:") C = read_set_from_keyboard("Ввод множества C:") # Вычисляем левую часть (A\B) ∩ (A\C) a_minus_b = set_difference(A, B) a_minus_c = set_difference(A, C) result_left = set_intersection(a_minus_b, a_minus_c) # Вычисляем правую часть A\(B ∪ C) b_union_c = set_union(B, C) result_right = set_difference(A, b_union_c) print "\nМножество A:", A print "Множество B:", B print "Множество C:", C print "\nРезультат (A\\B) ∩ (A\\C):", result_left print "Результат A\\(B∪C):", result_right # Проверяем, равны ли множества result_left и result_right if result_left == result_right: print "\n(A\\B) ∩ (A\\C) == A\\(B∪C) - Равенство подтверждено!" else: print "\n(A\\B) ∩ (A\\C) != A\\(B∪C) - Внимание! Множества не равны." if __name__ == "__main__": main()
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 стоп 3 6 9 12 15 18 21 24 27 30 стоп 5 10 15 20 25 30 стоп
Ввод множества A: Введите элементы множества (для завершения введите 'стоп'): Множество: set([2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]) Ввод множества B: Введите элементы множества (для завершения введите 'стоп'): Множество: set([3, 6, 9, 12, 15, 18, 21, 24, 27, 30]) Ввод множества C: Введите элементы множества (для завершения введите 'стоп'): Множество: set([5, 10, 15, 20, 25, 30]) Множество A: set([2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]) Множество B: set([3, 6, 9, 12, 15, 18, 21, 24, 27, 30]) Множество C: set([5, 10, 15, 20, 25, 30]) Результат (A\B) ∩ (A\C): set([2, 4, 8, 14, 16, 22, 26, 28]) Результат A\(B∪C): set([2, 4, 8, 14, 16, 22, 26, 28]) (A\B) ∩ (A\C) == A\(B∪C) - Равенство подтверждено!