2016-12-23 5 views
1

Pyeda permet d'écrire l'expression booléenne sous forme de préfixe et sous forme infixe:Pyeda: forme infixe d'expression booléenne

p = Or(And("A","B"), And("C","D")) # prefix 
i = expr("A & B | C & D") # infix 

Bien qu'il soit possible de récupérer automatiquement à partir i le formulaire de préfixe relatif, je ne sais pas (pas de conclusions dans docs) s'il est possible de récupérer la chaîne infixe représentation de p.

Quelques aides?

Répondre

2

PyEDA auteur ici.

La dernière version n'a pas cette fonctionnalité. Si vous revenez à la version 0.26.0, vous pouvez essayer les méthodes to_latex et to_unicode.

Par exemple:

>>> p = Or(And("A","B"), And("C","D")) 
>>> p.to_unicode() 
'A · B + C · D' 

IIRC, la raison de cette omission était le passage de Python à C pour le moteur d'expression booléenne. Un couple de caractéristiques non documentées vient d'être laissé de côté car il était soit difficile, soit cassé. Les PRs accueillent, bien sûr :)

+0

c'est dommage. de toute façon chris, une autre question. il y a un moyen de neutraliser une formule? par exemple. de Et (Ou (a, b), Et (Aucun, c)) à Et (Ou (a, b)) – enneppi

+1

Pas sûr de ce que vous entendez par "neutraliser" ici. Peut-être quelque chose comme une manipulation d'arbre où vous supprimez les nœuds directement? Non, je ne pense pas avoir implémenté ce genre de transformation. Votre exemple renverra un objet Zero, b/c le None sera interprété comme "Falsey" et forcera l'intérieur et l'extérieur et à zéro. Vous pouvez essayer d'utiliser des identités pour éliminer les nœuds différemment des dominateurs. –

+0

Salut @Christ Drake comment puis-je installer la version 0.26.0? – enneppi