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
You could simply define any boolean function right in python.
consider the following example:
def f(w,x,y,z):
return (x and y) and (w or z)
I've wrote a snippet that takes any function f, and returns its truth table:
import pandas as pd
from itertools import product
def truth_table(f):
values = [list(x) + [f(*x)] for x in product([False,True], repeat=f.func_code.co_argcount)]
return pd.DataFrame(values,columns=(list(f.func_code.co_varnames) + [f.func_name]))
Using this will yield (in a nicely formatted html if you're using IPython Notebook):
truth_table(f) w x y z f 0 False False False False False 1 False False False True False 2 False False True False False 3 False False True True False 4 False True False False False 5 False True False True False 6 False True True False False 7 False True True True True 8 True False False False False 9 True False False True False 10 True False True False False 11 True False True True False 12 True True False False False 13 True True False True False 14 True True True False True 15 True True True True True
Cheers.