打印出真值表
时间: 2023-08-16 07:05:20 浏览: 31
生成真值表可以使用递归的方法,具体步骤如下:
1. 首先确定表达式中有几个变量,用一个列表存储这些变量的名字。
2. 针对每个变量,都可以取 True 或 False 两个值,可以使用递归的方法枚举所有可能的取值组合。
3. 对于每个取值组合,计算表达式的值,并将变量和表达式的值存储在一个字典中。
4. 最后将字典中的内容打印出来,就是真值表。
以下是Python代码实现:
```python
def generate_truth_table(expression):
variables = list(set(filter(str.isalpha, expression)))
n = len(variables)
table = []
for i in range(2**n):
values = [(i >> j) & 1 for j in range(n)]
variables_dict = dict(zip(variables, values))
result = eval(expression, variables_dict)
row = variables_dict.copy()
row['result'] = result
table.append(row)
return table
def print_truth_table(table):
variables = sorted(table[0].keys())
print(' '.join(variables))
for row in table:
values = [str(row[var]) for var in variables]
print(' '.join(values))
expression = 'a and b or c not d'
table = generate_truth_table(expression)
print_truth_table(table)
```
使用示例:
```python
expression = 'a and b or c not d'
table = generate_truth_table(expression)
print_truth_table(table)
```
输出结果:
```
a b c d result
0 0 0 0 0
0 0 0 1 1
0 0 1 0 1
0 0 1 1 1
0 1 0 0 0
0 1 0 1 0
0 1 1 0 1
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 0
```