python编一个真值表生成软件,为Python中的任何表达式创建真值表

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 and this is what I have so far. I am not sure where to go from here.

from itertools import product

class Boolean(object):

def __init__(self, statement, vars):

self.exp = statement

self.vars = vars

def __call__(self, statement, vars):

def main():

expression = raw_input('Give an expression:')

vars = raw_input('Give names of variables:')

variables = vars.split(' ')

b = Boolean(expression, variables)

if __name__ == "__main__":

main()

解决方案

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!

你可能感兴趣的:(python编一个真值表生成软件,为Python中的任何表达式创建真值表)