← Back

Program 10: Represent and evaluate propositional logic expressions.

Simple Python Code
def evaluate(expr, values):
    expr = expr.translate(str.maketrans(
        {k: str(v) for k, v in values.items()}
    ))
    return eval(expr)

expr = "A and B or not C"

test_values = [
    {'A': True,  'B': False, 'C': True},
    {'A': True,  'B': True,  'C': False},
    {'A': False, 'B': True,  'C': False},
    {'A': False, 'B': False, 'C': True}
]

print("Expression:", expr, "\n")

for i, values in enumerate(test_values, 1):
    print(f"Test Case {i}")
    print("Values:", values)
    print("Result:", evaluate(expr, values))
    print("-" * 30)
Advanced Python Code
def evaluate(expr, values):
    expr = expr.translate(str.maketrans(
        {k: str(v) for k, v in values.items()}
    ))
    return eval(expr)

expr = "A and B or not C"

test_values = [
    {'A': True,  'B': False, 'C': True},
    {'A': True,  'B': True,  'C': False},
    {'A': False, 'B': True,  'C': False},
    {'A': False, 'B': False, 'C': True}
]

print("Expression:", expr, "\n")

for i, values in enumerate(test_values, 1):
    print(f"Test Case {i}")
    print("Values:", values)
    print("Result:", evaluate(expr, values))
    print("-" * 30)
Infographics