improve truthtable tool

This commit is contained in:
Florent Kermarrec 2012-09-17 17:27:50 +02:00
parent eba6a2c764
commit 62bede5eef
1 changed files with 19 additions and 7 deletions

View File

@ -2,14 +2,26 @@ import os
import re
import sys
def is_number(x):
try:
_ = float(x)
except ValueError:
return False
return True
def remove_numbers(seq):
return [ x for x in seq if not is_number(x)]
def remove_duplicates(seq):
seen = set()
seen_add = seen.add
return [ x for x in seq if x not in seen and not seen_add(x)]
seen = set()
seen_add = seen.add
return [ x for x in seq if x not in seen and not seen_add(x)]
def get_operands(s):
operands = remove_duplicates(sorted(re.findall("[A-z0-9_]+", s)))
return operands
operands = re.findall("[A-z0-9_]+", s)
operands = remove_duplicates(operands)
operands = remove_numbers(operands)
return sorted(operands)
def gen_truth_table(s):
operands = get_operands(s)
@ -30,6 +42,6 @@ def gen_truth_table(s):
def main():
print(gen_truth_table("(A&B&C)|D"))
if __name__ == '__main__':
main()
main()