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

您可以在python中简单地定义任何布尔函数。

请考虑以下示例:def f(w,x,y,z):

return (x and y) and (w or z)

我编写了一个代码片段,它接受任何函数f,并返回它的真值表: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]))

使用它将产生(如果您使用的是IPython笔记本,则在格式良好的html中):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

干杯。

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