Creating a truth table for any expression in Python

前端 未结 3 775
青春惊慌失措
青春惊慌失措 2021-02-09 17:42

I am attempting to create a program that when run will ask for the boolean expression, the variables and then create a truth table for whatever is entered. I need to use a class

3条回答
  •  悲哀的现实
    2021-02-09 18:25

    I have a library that does exactly what you want! Check out the github repo or find it here on pypi.

    The readme describes how everything works, but here's a quick example:

    from truths import Truths
    print Truths(['a', 'b', 'x', 'd'], ['(a and b)', 'a and b or x', 'a and (b or x) or d'])
    +---+---+---+---+-----------+--------------+---------------------+
    | a | b | x | d | (a and b) | a and b or x | a and (b or x) or d |
    +---+---+---+---+-----------+--------------+---------------------+
    | 0 | 0 | 0 | 0 |     0     |      0       |          0          |
    | 0 | 0 | 0 | 1 |     0     |      0       |          1          |
    | 0 | 0 | 1 | 0 |     0     |      1       |          0          |
    | 0 | 0 | 1 | 1 |     0     |      1       |          1          |
    | 0 | 1 | 0 | 0 |     0     |      0       |          0          |
    | 0 | 1 | 0 | 1 |     0     |      0       |          1          |
    | 0 | 1 | 1 | 0 |     0     |      1       |          0          |
    | 0 | 1 | 1 | 1 |     0     |      1       |          1          |
    | 1 | 0 | 0 | 0 |     0     |      0       |          0          |
    | 1 | 0 | 0 | 1 |     0     |      0       |          1          |
    | 1 | 0 | 1 | 0 |     0     |      1       |          1          |
    | 1 | 0 | 1 | 1 |     0     |      1       |          1          |
    | 1 | 1 | 0 | 0 |     1     |      1       |          1          |
    | 1 | 1 | 0 | 1 |     1     |      1       |          1          |
    | 1 | 1 | 1 | 0 |     1     |      1       |          1          |
    | 1 | 1 | 1 | 1 |     1     |      1       |          1          |
    +---+---+---+---+-----------+--------------+---------------------+
    

    Hope this helps!

提交回复
热议问题