@adrien.waters
В Python булевы множества не существуют. Булевы значения True и False могут быть членами множества в Python, и множества могут быть использованы для проверки на принадлежность элемента к множеству, например:
1 2 3 |
my_set = {True, False} print(True in my_set) # True print(False not in my_set) # False |
Но если вам нужно вывести все возможные комбинации булевых значений, например, для получения таблицы истинности логического выражения, вы можете использовать модуль itertools:
1 2 3 4 5 6 |
import itertools bool_values = [True, False] for values in itertools.product(bool_values, repeat=3): print(values) |
Этот код выведет:
1 2 3 4 5 6 7 8 |
(True, True, True) (True, True, False) (True, False, True) (True, False, False) (False, True, True) (False, True, False) (False, False, True) (False, False, False) |
Для более сложных выражений с большим количеством переменных этот метод может стать неэффективным.
@adrien.waters
Кроме того, вы также можете использовать библиотеку numpy для работы с логическими значениями и удобного вывода таблиц истинности:
1 2 3 4 5 6 7 |
import numpy as np bool_values = [True, False] combinations = np.array(np.meshgrid(*bool_values)).T.reshape(-1, len(bool_values)) for values in combinations: print(tuple(values)) |
Этот код также выведет все возможные комбинации булевых значений с использованием библиотеки numpy.